答案1
回复晚了,但我今天遇到了这个要求,这篇文章在谷歌结果中排名很高。
简而言之,您需要应用本地策略包...策略,以允许您想要的用户。该文件应该以/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
我发现方便的参考:
答案2
第一个答案在 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
,因此请根据需要进行调整。