Question: How to configure /etc/cups/cupsd.conf to allow certain user or group to manage cups tasks just like root user?
By default, CUPS is configured to allow only the root user to perform tasks via the command line or via a Web-UI. For example, to add user john to be able to manage print jobs, below edit can be done:
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
AuthType Default
Require user @OWNER @SYSTEM john
Order deny,allow
To, for example, add some user to have full access similar to root user – edit every line in cupsd.conf which starts from [Limit XYZ] and add this user to Required user section. Also make sure that users are added to location section like:
<Location /admin/conf> AuthType Default Require user @SYSTEM john </Location>
There is also an option to add specific Linux group to manage CUPS – this can be achieved by adding @group ( where the group is Linux group name ) to Require user section. CUPS has also an option to simply allow all users to manage CUPS – in that case, Allow all must be added to the specific section:
<Limit Resume-Printer> AuthType Default Require user @SYSTEM Order deny, allow Allow all </Limit>
This option can cause security compliance issues hence its not recommended. After all changes are done, CUPS service must be restarted:
# service cups restart
or
# systemctl restart cups.service