lprm-0.48 only allows non-root users to remove jobs from the same host from which the print job was submitted. However, the testing is really screwed up and when it fails, lprm stops working... As I understand it, lpr records the hostname of the machine where the jobs is submitted and compares it to the reverse-DNS of the IP submitting the lprm command _lowercased_. Result: 1) Hostname = rev-DNS, but includes upper-case letters -> check fails, lprm does not work. 2) Hostname != rev-DNS -> check fails, lprm does not work. While (2) is understandable for security reasons, (1) is really annoying (especially after I've spent _lots_ of time trying to figure the whole thing out). P.S. I tried it only with RH-5.2 runnin on both client and daemon, but I expect result to be the same on all other versions of RH, on which the lpr-0.48 update was installed.
P.P.S. It would be nice to be able to get rid of the whole testing using some printcap flag.
Related problem: bug #387
P3.S. The "Permission denied" error message is _extremely_ uninformative. I would suggest something along the lines "can only be removed from <hostname>".
This is fixed in rawhide with the move to LPRng.