rlprd(8)

πŸ’– rlprd(8) β€” the remote printing proxy daemon bestie πŸ’–

aka rlprd β€” from the UNIX Reference Manual, no less πŸ‘‘


✨ NAME ✨

rlprd β€” remote printing proxy daemon πŸ–¨οΈβœ¨


πŸŽ€ SYNOPSIS πŸŽ€

rlprd [-nqV] [-pport] [-ttimeout] [--debug]

okay so that's the whole vibe right there, short and slay πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

So like. rlprd is a proxy that sits between the remote printing commands β€” that's rlpr(1), rlpq(1), and rlprm(1) β€” and your standard lpd print servers. It's for when those remote printing commands literally cannot be installed setuid root, which, yeah, happens 😭. Wanna know how to actually configure the remote printing commands? Bestie, go read rlpr(1), it's all in there. 🫢

Now the important part, no cap: rlprd has to be installed setuid root. Like, it needs that. If it can't run that way, it is useless. Not even exaggerating, that's just the truth. πŸ’€

Here's how it works, and it's lowkey iconic: it takes the non-privileged port requests coming from rlpr(1) clients and maps them onto privileged ports, so the lpd's will actually listen to them. And the whole "we're losing the security of privileged ports" thing? Not a problem, fr fr β€” that "security" is a non-issue anyway, because the Internet is no longer just Unix, and Unix is literally the only OS that even has the privileged port concept. 🌈

Also, huge clarification: rlprd is NOT a replacement for lpd(8). It just passes data along to an lpd(8) on a target machine β€” and that target machine gets specified by an invocation of a remote printing command. But here's the cute part: when a client is using the rlpr suite of tools to do remote printing, that client does not need to run an lpd(8) locally. Main character energy, honestly. πŸ‘‘

⚠️ okay so heads up bestie, this one matters: once an rlprd is set up on a network (and yes, that includes the Internet 🌐), any host may connect to it and use its proxy services β€” as long as it knows the name of the machine running it. So, like, keep that in mind. πŸ™ˆ

πŸ’… OPTIONS πŸ’…

  • --debug β€” prints gobs and gobs of debugging info. gobs. πŸ›
  • -n, --no-daemon β€” don't run rlprd as a daemon. Usually not needed. πŸ’€
  • -p, --port=number β€” pick an alternate port to listen on (instead of the default 7290). Usually not needed. πŸ”Œ
  • -q, --quiet, --silent β€” quiet mode, so stay quiet and chill 🧘 β€” except for fatal errors, those still get to speak.
  • -t, --timeout=seconds β€” sets the inactivity timer. If the connection hangs for more than seconds seconds, then rlprd will time out that connection. There's a special value, -1, if you wanna wait forever (romantic ✨). Default timeout is 3 seconds.
  • -V, --version β€” prints the version and exits, bye πŸ‘‹

🌸 SEE ALSO 🌸

rlpr(1), rlpq(1), rlprm(1), rlprrc(5) β€” go read them, iykyk πŸ“š


πŸ‘‘ AUTHOR πŸ‘‘

meem <meem@gnu.org> β€” an actual legend, we stan πŸ’œ


πŸ’€ BUGS/LIMITATIONS πŸ’€

Currently, it is not possible to run rlprd from inetd(8). That's the limitation, bestie. That's it. πŸ₯²


and that's the whole page, mwah πŸ’– this was rlpr version 2.04, dated 1999/10/28 β€” yeah it's vintage, it's still iconic, periodt. πŸŽ€πŸ¦‹πŸŒΈ