Isso pode ser feito usando uma política do PolKit. Existem algumas ações do Polkit relacionadas à impressora:
$ pkaction | grep -i print
org.opensuse.cupspkhelper.mechanism.printer-enable
org.opensuse.cupspkhelper.mechanism.printer-local-edit
org.opensuse.cupspkhelper.mechanism.printer-remote-edit
org.opensuse.cupspkhelper.mechanism.printer-set-default
org.opensuse.cupspkhelper.mechanism.printeraddremove
O último parece ser o mais relevante. Crie um arquivo .pkla
em /etc/polkit-1/localauthority/50-local.d
, digamos, disable-printer-change.pkla
, contendo:
[Printer addition, removal]
Identity=unix-user:geraldo
Action=org.opensuse.cupspkhelper.mechanism.printeraddremove
ResultAny=no
ResultInactive=no
ResultActive=no
Substitua geraldo
pelo nome de usuário apropriado. Os curingas são suportados e você também pode usar groups
usando unix-group:<group-name>
.