Skip to main content
Version: 1.x

USB printer permissions on Linux

Symptom: the printer shows up when you scan, but printing fails with an access or permission error.

Why it happens​

On Linux a USB device belongs to root unless a rule says otherwise, so an app running as you cannot open it. The kernel's own printer driver may also have claimed the device already.

Do this​

  1. Find the printer's vendor and product ids:

    lsusb

    Look for your printer's line — the ids are the two four-character values after ID, for example 04b8:0e28.

  2. Create a rule file, replacing the ids with yours:

    sudo tee /etc/udev/rules.d/99-receipt-printer.rules <<'RULE'
    SUBSYSTEM=="usb", ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0e28", MODE="0666"
    RULE
  3. Reload the rules and re-apply them:

    sudo udevadm control --reload-rules && sudo udevadm trigger
  4. Unplug the printer, plug it back in, and restart the app. Print a test page.

Run the app as your normal user, not with sudo — a rule that works only for root defeats the point.

Still stuck?​

Use Copy setup report on the trouble screen and paste it into your message, along with the lsusb line for your printer.