Re: Retiring lpr and lpd

Dag-Erling Smørgrav <[email protected]> Sat, 21 Feb 2026 02:07:54 +0100
Newsgroups gmane.os.freebsd.architechture
Message-ID <[email protected]>
"Enji Cooper (yaneurabeya)" <[email protected]> writes:
> How hard would it be to remove the set*uid bit and just require the
> process be run as a non-root user/the cdevs be writable to a printer
> group using devfs rules and devd?

The issue is not access to the device (only lpd(8) needs that, and it's
a service), the issue is access to the spool directory: lpr(1) and
lprm(1) add and remove print jobs by direct manipulation of the spool
directory, lpd(8) picks jobs up from there and sends them to the printer
(and also accepts incoming print jobs from network clients), lpq(1)
needs to read the spool control files to display the print queue.  The
only program that shouldn't need to be setugid (but still is, and I
don't know why) is lpc(8), which is only intended to be run by an
administrator.

DES
-- 
Dag-Erling Smørgrav - [email protected]