Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
rlpr(1) 		      UNIX Reference Manual			 rlpr(1)

NAME
     rlpr - remote off-line print

SYNOPSIS
     rlpr  [-Hprinthost]  [-Pprinter] [-Xproxyhost] [-#copies] [-Cclass] [-Jjob]
     [-Ttitle] [-Uuser] [-i[indent]] [-wwidth]	[-1234cdfghlmnopqrstvNV]  [--de-
     bug]   [--port=port]   [--hostname=hostname]  [--send-data-first]	[--time-
     out=seconds] [--tmpdir=dir] [--verbose] [--windows] [file ...]

DESCRIPTION
     rlpr uses TCP/IP to send print jobs to lpd servers anywhere on  a	network.
     Unlike  lpr,  it  does  not  require that the remote printers be explicitly
     known to the local system (traditionally through /etc/printcap),  and  thus
     is considerably more flexible and requires less administration.

     rlpr can be used anywhere a traditional lpr might be used, and is backwards
     compatible  with  traditional  BSD lpr.  If rlpr is invoked as lpr, it pre-
     serves all known lpr semantics.

     rlpr can be installed and used in two different ways:  (the same guidelines
     apply for rlpq(1) and rlprm(1))

     1. Ideally, if the rlpr client can be installed setuid root, then rlpr  can
     interact directly with other lpd's on the network.  See EXAMPLES below.

     2.  If  rlpr cannot be installed setuid root (in cases where one is not the
     administrator on the machine one needs to print from) then rlpr can be used
     in conjunction with an rlprd proxy agent. See  CONFIGURING A PROXY and  EX-
     AMPLES below for details.

MOTIVATION
     Traditional Berkeley lpr has one major drawback: the mortal user cannot lpr
     to a printer which is not listed explicitly in the /etc/printcap file.

     This is especially annoying in scenarios where  there  is	a  central  UNIX
     server  which  many users (using their own desktop computers) connect to in
     order to do their daily work; If those users wish to print files  from  the
     central  server to their personal machines (assuming they had a local lpd),
     they cannot do this without the central server's /etc/printcap being edited
     to contain the host and printer of each user on the network -  this  scales
     horribly.

OPTIONS
   Environment/Setup
     --debug
	    Print gobs of debugging information.

     -N, --no-bind
	    Don't  try	to  bind  to  privileged  port before connecting to lpd.
	    Please see CONFIGURING A PROXY below for information on use of  this
	    option.

     --port=number
	    Select  an	alternate port (instead of 7290) to connect to, if using
	    rlprd.  Usually not needed.

     -H, --printhost=host
	    Select the host to print to (used with -P).

	    Instead of using -H, one can specify the hostname directly including
	    it with the printer name with the printer@hostname syntax.

     -P, --printer=printername, --queue=printername
	    Select the printer to print to (used with -H).

     -X, --proxyhost=proxyhost
	    Select the proxy host to use, if necessary.

     --timeout=seconds
	    Set the inactivity timer.  If the connection  hangs  for  more  than
	    seconds seconds, then rlpr will give up.  Use the special value `-1'
	    to wait forever.  Default timeout is 3 seconds.

     --tmpdir=tmpdir
	    Use tmpdir for temporary files (by default, /tmp is used)

     -V, --version
	    Print version and exit.

     NOTE:  instead  of specifying the printer, printhost, or proxy variables on
     the commandline, one can set up defaults through either  environment  vari-
     ables  or	rlprrc configuration files.  For information on personal or sys-
     tem-wide rlprrc files, see rlprrc(5).

   Behavior
     -#, --copies=copies
	    Print copies copies of  each  document  -  use  sparingly,	printers
	    aren't copiers.

     -m, --mail
	    Send mail upon completion.

     -q, --quiet, --silent
	    Quiet mode - stay quiet (except for fatal errors).

     -r, --remove
	    Remove file after printing.

     -s
	    Ignored (provided for compatibility).

     --send-data-first
	    Send  the  "data"  transaction  before  the  "control"  transaction.
	    Should never be required when rlpr is used in conjunction with a RFC
	    1179 conformant lpd.  However, buggy implementations exist which re-
	    quire these semantics.  Use only when necessary.

     --verbose
	    Verbose mode - on by default unless rlpr is invoked as lpr.

     --windows
	    "Windows" mode - for printing multiple files to a windows-based lpd.

   Document Content
     -1   Print data using troff(1) R (times roman) font.
     -2   Print data using troff(1) I (times italic) font.
     -3   Print data using troff(1) B (times bold) font.
     -4   Print data using troff(1) S (special) font.
     -c   Assume data has been produced by cifplot(1).
     -d   Assume data has been produced by tex(1).
     -f   Filter data assuming the start of each line has
	 a fortran carriage control character.
     -g   Assume data has been produced by the BSD plot library.
     -l   Treat control characters as regular characters.
     -n   Assume data has been produced by ditroff.
     -o   Assume data is postscript.
     -p   Print data using pr(1).
     -t   Assume data has been produced by troff(1).
     -v   Assume the data contains a raster image.

   Document Format
     -i, --indent=[cols]
	    Indent output by cols columns (8 by default).

     -h, --no-burst
	    Do not print burst (banner) page.

     -w, --width=width
	    Use width for page width when using pr(1).

     -C, --class=class
	    Use class for the class name on burst page instead of the local sys-
	    tem name.

     -J, --job=jobname
	    Use jobname for the job name on burst  page  instead  of  the  first
	    filename in the job.

     -T, --title=title
	    Use  title	for  the  title  when using pr(1) instead of the current
	    filename.

     -U, --user=username
	    Use username for the user name on burst page instead of  the  actual
	    username.

     --hostname=hostname
	    Use hostname for the hostname on the burst page instead of the local
	    system name.

   OS-Specific Extensions
     See OS-SPECIFIC EXTENSIONS below for details on these options.

     --ext=os --extension=os
	    Interpret  the arguments passed to --extargs as if on operating sys-
	    tem os.  Currently, os must be either hpux or none.

     --extargs="args"
	    Change behavior according to OS-specific arguments listed in args.

CONFIGURING A PROXY
     In situations where the rlpr client cannot be installed setuid  root,  rlpr
     often  cannot  directly  talk to an lpd because most lpd's require that re-
     quests come from privileged ports. Unfortunately, rlpr cannot "come from  a
     privileged port" without having superuser status.
     The privileged port requirement is part of RFC 1179.

     That  said,  some	lpd's,	most notably some of the ones which have shipped
     with Windows NT, Solaris, and NCRunix, do not require requests to come from
     a privileged port.  Before going through the work of configuring  a  proxy,
     you  should make sure one is required for your situation.	You can check by
     trying to run rlpr: if it is successful in spooling the  job,  you  do  not
     need to install rlpr setuid root.	You should then pass the -N (or the more
     verbose  --no-bind)  to  rlpr in the future to suppress rlpr's warning mes-
     sages.

     If your situation does not require a privileged port, do not use  one.  You
     can  explicitly  request  a regular port, even when rlpr has been installed
     setuid root, by using the --no-bind option.  This is a  good  idea  because
     there  are only 11 privileged ports that the RFC allows.  This ends up hav-
     ing the practical implication of limiting your print requests to  about  11
     per every 3 minutes, which is often unacceptable.

     The  rest of this section assumes that rlpr cannot be installed setuid root
     in your situation, and that a remote lpd requires rlpr connect to it from a
     privileged port.  It requires that you or someone you know has root  access
     to  another  machine the network, so that you can use a proxy, known as rl-
     prd, to get around the problem.

     rlprd works by taking lpd requests on a non-privileged port,  mapping  them
     to  a  privileged port, and sending them out to the real lpd. The proxy and
     the lpd need not be on the same machine.

     In the scenario provided in the motivation, if each user had root access on
     his own machine, it would be optimal for the user to start rlprd up on  his
     own  machine,  in	which  case the proxy and the printhost are the same ma-
     chine.  The user would additionally have to make sure his own  machine  was
     listed in his local /etc/hosts.lpd so that his lpd would accept connections
     from his rlprd.

     However, if the machine the user wants to print to is not running unix (but
     is running an lpd) (i.e. Windows, WinNT, etc) -- Then that user can config-
     ure  his  lpd  to accept connections from an rlprd running somewhere on the
     network, and use that rlprd as a proxy for rlpr.

     For more on this mess, see rlprd(8).

EXAMPLES
     WITHOUT A PROXY  (rlpr is setuid root)

     sun% rlpr --printer=hp4l@foo.bar.org foo.c

     prints foo.c  to  the  printer  hp4l  on  the  host  foo.bar.org  (assuming
     foo.bar.org  has  been configured to accept print requests from host sun in
     its /etc/hosts.lpd).

     sun% who | rlpr --printer=hp4l@foo.bar.org

     prints the output of who(1) to the printer hp4l on the host foo.bar.org.

     WITH A PROXY  (rlpr is a normal program)

     sun% rlpr -Xfoo.bar.org --printer=hp4l@foo.bar.org foo.c

     prints foo.c to the printer hp4l on the host foo.bar.org using  foo.bar.org
     as  a  proxyhost. Under this configuration, foo.bar.org needs to be config-
     ured to accept print requests from the proxy (itself) and not from sun.  In
     situations where the proxy and the printhost are not the same machine, this
     can  lead	to  some security holes due to the original lameness of berkeley
     lpd's host-based security.

     NOTE: if a proxyhost isn't specified anywhere, rlpr assumes one isn't  nec-
     essary.

OS-SPECIFIC EXTENSIONS
     Some vendors have added features to their BSD-based lpr products, which are
     upwardly compatible with lpr but incompatible with one another.  To support
     these extensions, rlpr allows the user to indicate what operating system to
     emulate and provide a string of OS-specific options, either through comman-
     dline arguments or environment variables.

     Note  that for correct operation, these extensions should be only used when
     interoperating with an lpd provided by the vendor for the indicated operat-
     ing system.

ENVIRONMENT VARIABLES
     The following environment variables are used by rlpr:

     RLPR_EXTENSION
	    Specifies the operating system to  interpret  OS-specific  arguments
	    relative to.

     RLPR_EXTARGS
	    Specifies the OS-specific arguments.

     RLPR_PRINTHOST
	    Specifies the default host to print to.

     PRINTER or LPDEST
	    Specifies a default printer (printqueue) to use.
	    First PRINTER is consulted, then LPDEST.

	    Note  that	one  can  also	specify  the host to print to by setting
	    printer to be printer@hostname.  This may be  more	convenient  than
	    setting  RLPR_PRINTHOST,  but will confuse the traditional BSD print
	    commands.

     RLPR_PROXYHOST
	    Specifies a proxy host to use, if necessary.

     RLPR_CONFDIR
	    If RLPR_CONFDIR is set, it is the directory containing  the  system-
	    wide rlprrc file.  By default, /etc is used.

     TMPDIR
	    If	TMPDIR is set, it is used for temporary files.	By default, /tmp
	    is used.

FILES
     ~/.rlprrc	       Personal printer/host database
     $TMPDIR/cf*       Temporary control files on local machine
     $TMPDIR/df*       Temporary data file for jobs from stdin
     /var/spool/*/cf*  Temporary control files on printhost
     /var/spool/*/df*  Temporary data files on printhost
     /etc/hosts.lpd    Host-based security on printhost
     /etc/passwd       Personal identification
     /usr/local/etc/rlprrcSystem-wide printer/host database (by default)

SEE ALSO
     rlpq(1), rlprm(1), rlprd(8), rlprrc(5), lpr(1)

AUTHOR
     meem <meem@gnu.org>

BUGS / LIMITATIONS
     Some evil applications have lpr hardcoded into them.

rlpr 2.04			   2000/12/30				 rlpr(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rlpr&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help