Поскольку systemd появился позже, у него есть механизм для запуска старых сценариев инициализации SysV для прямой совместимости.
Пакеты, разработанные для системы на основе systemd, могут только поставлять сценарий «службы» на основе systemd, а не устаревший сценарий «init.d».
Я не думаю, что у SysV есть способ читать служебные файлы systemd. Поэтому некоторые службы могут не запускаться должным образом при использовании старой системы инициализации.
Запоздалый ответ, но я столкнулся с этим требованием сегодня, и этот пост занимает высокое место в результатах Google.
Короче говоря, вам нужно применить локальную политику policykit..., которая разрешает пользователям, которых вы хотите. Файл должен быть создан в /var/lib/polkit-1/localauthority/50-local.d/
с именем вроде50-printer-open-access.pkla
(примечание, это место для политик в системах Debian/Ubuntu -другие, которые я не знаю)
Примечание :см. комментарии ниже относительно возможных изменений синтаксиса файлов в современных дистрибутивах, я могу подтвердить, что приведенные ниже примеры работают на Ubuntu 18.04
Пример 1 позволяет буквально любому:
[Printer administration]
Identity=*
Action=org.opensuse.cupspkhelper.mechanism.*
ResultAny=no
ResultInactive=no
ResultActive=yes
Пример 2, разрешает любым пользователям из группы lpadmin
:
[Printer administration]
Identity=unix-group:lpadmin
Action=org.opensuse.cupspkhelper.mechanism.*
ResultAny=no
ResultInactive=no
ResultActive=yes
Ссылка, которая мне пригодилась:
Первый ответ не работал у меня в Fedora, поэтому я нашел этот документ .
Добавление этого в /etc/polkit-1/rules.d/90-printer-admin.rules
сработало сразу, даже не пришлось закрывать и снова открывать панель управления.
polkit.addRule(function(action, subject) {
if (/^org\.opensuse\.cupspkhelper\.mechanism\./.test(action.id) &&
subject.isInGroup("lp")) {
return polkit.Result.YES;
}
});
В Fedora группа администраторов — lp
, а не lpadmin
, поэтому при необходимости настройте ее.