我试图允许非 root 用户通过 CentOS 7 上的桌面 GUI 添加打印机,而不会提示输入密码。我尝试设置自定义 Polkit 规则并修改 CUPS 配置,但没有取得任何成功。
通过 GUI 完全阻止打印机添加,即使对于 root 用户也是如此。添加打印机的唯一方法是通过终端使用 sudo 命令。
这是我尝试过的:
- 针对 lp 组中用户的“org.freedesktop.color-manager.create-device”和“org.freedesktop.systemd1.manage-units”操作的自定义 Polkit 规则。
- 通过将 lp 添加到 SystemGroup 定义来修改 /etc/cups/cups-files.conf。
Polkit 规则 (/etc/polkit-1/rules.d/51-custom-printer.rules)
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.color-manager.create-device" &&
subject.isInGroup("lp")) {
return polkit.Result.YES;
}
});
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
action.lookup("unit") == "cups.service" &&
subject.isInGroup("lp")) {
return polkit.Result.YES;
}
});
CUPS 配置 ( /etc/cups/cups-files.conf
)
# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
SystemGroup sys root lp