Allow Remote Users to Add/Remove Printers

Это выбивает меня из колеи! Я чувствую, что я так близко, но я, вероятно, упускаю одну крошечную деталь.

У меня есть рабочий стол Ubuntu, настроенный как сервер CUPS. Мне нужно добавить принтеры через интерфейс GUI, а не через веб-интерфейс CUPS. Когда я вхожу локально на сервер, проблем нет, все работает отлично!

Однако, когда я запускаю удаленный сеанс через X2Go, с тем же пользователем, я могу открыть и увидеть принтеры, которые уже подключены к серверу, но это все. Я не могу сделать ничего другого. Не добавлять. Ни удалить. Ни редактировать. Ничего. (Есть одно крошечное исключение из этого: Если я запускаю удаленный сеанс через X2Go, входя в систему под именем root, все работает. Я могу изменять принтеры. Не знаю точно, в чем причина.)

Значок "Разблокировать" в правом верхнем углу графического интерфейса принтера закрашен серым цветом, и при наведении на него появляется сообщение "Системная политика предотвращает изменения". Я провел достаточно исследований, чтобы понять, что это что-то связанное с polkit в Ubuntu; однако, очевидно, у меня нет правильного файла .pkla, поскольку ничто из того, что я в него вставляю, не имеет значения.

Вот мой текущий файл .pkla:

[Modify printers remotely]
Identity=unix-user:{remote_user}
Action=org.opensuse.cupspkhelper.mechanism.printeraddremove
ResultInactive=auth_self
ResultActive=auth_self

Он хранится в: /etc/polkit-1/localauthority/50-local.d.

Не упустил ли я что-нибудь в этом файле, что помешало бы пользователю, подключенному удаленно, изменять принтеры через GUI? Может быть, polkit просто не должен это поддерживать? У меня совсем нет идей.

Сервер работает под управлением Ubuntu 20.04, CUPS 2.3.1 и pkaction версии 0.105

Спасибо всем за любую помощь!

0
задан 1 July 2020 в 06:53

1 ответ

Эта же проблема вызывала у меня недоумение! У меня очень похожая конфигурация, и я столкнулся с невозможностью разблокировать настройки принтера при запуске удаленного сеанса из RDP в Windows. Как вы заметили, руководство по изучению существующих материалов также не было особенно полезным. Только я попал примерно в то же место, что и вы, т. е. не совсем решил вопрос полностью. Можно было бы подумать, что удаленное изменение принтеров — это такая распространенная задача, чтобы уже иметь решение ... но, по-видимому, это не так.

Однако только сегодня я, кажется, определил последний шаг, необходимый для пересечения финишной черты. Это лишь незначительная корректировка по сравнению с тем, что у вас было, но в результате вы можете удаленно разблокировать настройки принтера.

Дополнительные данные можно найти на справочной странице polkit (эта ссылка ведет на документацию Focal Fossa, но для других версий должна быть очень похожей).

Слегка измененное содержимое файла выглядит следующим образом, сразу после того, как вы можете найти подробности о том, почему такая конфигурация:

[Modify printers remotely]
Identity=unix-user:{remote_user}
Action=org.opensuse.cupspkhelper.mechanism.*
ResultAny=auth_admin_keep

В квадратных скобках находится заголовок, который должен быть уникальным внутри файла.

Ключ Идентификация указывает, к каким пользователям или группам применяется это правило.

В вашем примере вы использовали два ключа ResultActive и ResultInactive: оба относятся к локальному сеансу, а не к удаленному сеансу. один; вместо этого ключ ResultAny относится к любому субъекту. При тестировании на Ubuntu 20.04 LTS (Focal Fossa) я определил, что добавление только ResultAny не влияет на локальный сеанс, поэтому, если вы подключаетесь локально, вам не нужно вводить пароль администратора для редактирования принтеров (имейте в виду, что в любом случае это будет ограничено пользователем, указанным в Identity).

Я изменил ключ Action на глобальное значение org.opensuse.cupspkhelper.mechanism.*, которое включает в себя больше действий, чем просто добавление, редактирование или удаление принтера. Вы можете просмотреть разрешенные отдельные действия, запустив pkaction | grep org.opensuse.cupspkhelper.механизм. .

Расположение файла pkla должно быть /etc/polkit-1/localauthority/50-local.d/. Что касается имени файла, оно может быть любым, которое вам нравится, имея в виду, что если есть несколько файлов, они оцениваются по порядку (для лучшего понимания см. Справочную страницу, указанную выше) — я использую «99-printing .пкла".

Обратите внимание, что polkit распознает эти настройки сразу после создания файла pkla в указанном выше каталоге. Когда файл pkla сохраняется, он сразу же вступает в силу (нет необходимости выходить из системы и входить в нее). В последующих удаленных сеансах пользователь сможет разблокировать настройки принтера путем аутентификации.Если аутентификация считается ненужной, просто замените auth_admin_keep в файле pkla на yes, и шаг разблокировки можно будет полностью пропустить.

Надеюсь, это будет полезно!

0
ответ дан 17 August 2020 в 03:35

Другие вопросы по тегам:

Похожие вопросы: