Enable Regular Users to Add Printers to CUPS

On certain Linux systems – say, openSUSE in my case – logging in as root is disallowed. However, CUPS and the accompanying web console (http://localhost:631) require the root user to log in in order to configure or add printers. So how can we get around this problem?

Follow these steps to allow regular/non-system users to manage printers on your Linux system:

  1. Change into the CUPS directory: cd /etc/cups
  2. Edit the "cupsd" configuration file: sudo vim cupsd.conf
  3. Locate the line which says "<Limit CUPS-Add-Modify-Printer...".
  4. On the following line, immediately after the text "Require user @SYSTEM" add the desired user whom you would like to allow to configure CUPS. [See my example below.]
  5. Save and quit, :wq.
  6. Do a sudo killall cupsd to shut down all CUPS services.
  7. Next do sudo systemctl restart cups.service to re-enable and restart the service.
  8. Open your browser and go to http://localhost:631.
  9. Click on 'Adding Printers and Classes'; log in if necessary. Alternatively, enter: http://localhost:631/admin and then log in if necessary.
  10. Click 'Add Printer'.
  11. If you followed these steps correctly, you should now be able to configure new printers as desired as if you were the SYSTEM/root user.
My example of /etc/cups/cupsd.conf (edited):
  # All administration operations require an administrator to authenticate...
  < Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Default
    Require user @SYSTEM adam
    Order deny,allow
  < /Limit>
The CUPS Admin Page: Can you add a printer now?