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.