


LPD.CONF(5)                                           LPD.CONF(5)


NAME
       lpd.conf - configuration file for the LPRng line printer spooler system

DESCRIPTION
       The  file lpd.conf is used to provide configuration information for the
       LPRng Printer spooler system and  defaults  for  printcap  information.
       Leading  spaces  on  lines are ignored, and blank lines and lines whose
       first nonblank character is a  sharp  (``#'')  are  ignored.   Trailing
       blanks and tabs (whitespace) for an option value are deleted unless the
       last one is escaped with a backslash (``\'').  All other lines  specify
       parameters and should be of the following form:
              keyword
              keyword@
              keyword#value
              keyword=value
       Note that these values are the same format as printcap(5) values.  Val-
       ues in the configuration can contain host or machine dependent informa-
       tion;  to  assist with this, the following escape sequences in the con-
       figuration information are replaced as follows:

       %h     the short form of the host name (i.e.- non fully qualified).

       %H     the fully qualified host name.

       %a     the abbreviated architecture name, sun4, sol2, hpux, aix, irix5,
              etc.   This  value  can be set using the architecture keyword in
              the configuration file and is set to a  default  value  at  com-
              pile_time.

       %P     the printer name from the printcap entry (see below).

       %R     the remote printer name from the printcap entry.

       %M     the remote host name from the printcap entry.  This is truncated
              to the short host name.

       For example, on host dickory.sdsu.edu,  the  strings  short=%h  long=%H
       arch=%a   would  be  expanded  as  short=dickory  long=dickory.sdsu.edu
       arch=sun4 .

       The P, R, and M tags are provided for use with  combined  configuration
       and  printcap  information.   These  values  are  not expanded when the
       printcap information is initially processed, and can be used only in  a
       limited number of printcap or other entries.  Currently only the print-
       cap  :sd:  (spool  directory)  and  :forward_server:  (forward  server)
       entries use these.


GENERAL CONFIGURATION PARAMETERS
       Some  of  the  following  paramters take lists of files or directories.
       Unless otherwise explicitly stated, these lists  can  be  separated  by
       commas  (,), semicolons (;), or colons, (punctuation) and possibly tabs
       or spaces (whitespace) as well.




LPRng                      LPRng-3.9.0                          1





LPD.CONF(5)                                           LPD.CONF(5)


       Keyword names can use either underscores (_) or hyphens  (-)  in  their
       names, but the underscore is preferred.

       include pathname [pathname*] (no default)
              This  can  be used to include files into the lpd.conf file.  The
              include file parameter a whitespace separated list of files; the
              files must have absolute pathnames and must be readable.

       ae (default: "jobend $H $n $P $k $b $t")
              This  specifies either a script or a filter to be invoked at the
              send of a job for accounting purposes.  See as for the  matching
              accounting  at  start,  and the printcap(5) and lpd(8) man pages
              for details.

       allow_getenv (default: "LPD_CONF")
              This option specifies an enviorinment variable whose value is  a
              configuration file.  Use of this is restricted to test purposes,
              and SUID ROOT client and server will not run when  the  variable
              is enabled.

       ar (default: yes)
              See printcap(5) for details.

       architecture
              The  default value is set at compile time and can be overwritten
              with this parameter.  The default value of this parameter is set
              at  compile  time  and  it  is  used  when expanding the special
              sequence %a in pathname and  filename  strings  in  this  config
              file.

       auth (default: NULL)
              Authentication  type  to be used for client to server communica-
              tion.

       auth_client_filter (default: NULL)
              Program to be used for client to server communication.

       auth_forward (default: NULL)
              Authentication type to be used for server to  server  communica-
              tion.

       auth_forward_filter (default: NULL)
              Program to be used for server to server communication.

       auth_forward_id (default: NULL)
              Authentication id of remote server for server to server communi-
              cation.

       auth_receive_filter (default: NULL)
              Program to be used by server receive server or client communica-
              tion.

       auth_server_id (default: NULL)
              Authentication id of originating client or server.



LPRng                      LPRng-3.9.0                          2





LPD.CONF(5)                                           LPD.CONF(5)


       as (default: "jobstart $H $n $P $k $b $t")
              See as.

       bk (default: no)
              See printcap(5) for details.

       bk_filter_options
              (default: "$P $w $l $x $y $F $c $L $i $J $C $0n $0h $-a") If the
              "bkf" (backwards compatible filter) flags is set in the printcap
              entry  and the original filter specification does not have a `$`
              in it, this option string is appended to a filter specification,
              and  the  string expanded with values from the printcap informa-
              tion  and  job  information.    (see   of_filter_options,   fil-
              ter_options, bk_filter_options, bk_of_filter_options)

       bk_of_filter_options
              (default: "$w $l $x $y") If the "bkf" (backwards compatible fil-
              ter) flags is set in the printcap entry and the original  filter
              specification  does  not have a `$` in it, this option string is
              appended to the OF filter specification, and the string expanded
              with  values  from the printcap information and job information.
              (see   of_filter_options,   filter_options,   bk_filter_options,
              bk_of_filter_options)

       check_for_nonprintable (default: "")
              (Used by LPR) check f and p formats for non_printable characters
              unless -b (binary) or -l (literal) command_line option  is  sup-
              plied.  Note that files containing HPGL or other printer control
              languages would often be classed as ``non_printable''.

       connect_grace (default: 0 seconds)
              The time to pause before opening a new connection to a  printer.
              This allows the printer time to recover from the previous job.

       connect_interval (default: 10 (seconds))
              The  time  to  pause  after  a  failed connection or open of the
              printing device before attempting a new connection or open.

       connect_timeout (default: 10 (seconds))
              The time to wait for a device open or connection to complete.  A
              zero value is infinite timeout.

       retry_nolink (default: true)
              When  TRUE  and the LPD server is printing or transfering a job,
              then an indefinate number of attempts to connect to or open  the
              IO device will be made.

       default_banner_printer (default: "")
              The  default banner printer program to be used for printing ban-
              ners.  This should be specified in the LPD configuration file.

       default_format (default: "f")
              Default format for printing jobs.




LPRng                      LPRng-3.9.0                          3





LPD.CONF(5)                                           LPD.CONF(5)


       default_logger_port
              (default: 2001) specifies  a  default  port  number  for  logger
              information.  See logger_destination for details.

       default_logger_protocol
              (default:  UDP) specifies a default protocol for logger informa-
              tion.  See logger_destination for details.

       default_permission (default: ACCEPT)
              Default permission for operations.

       default_printer (default: "")
              The default printer to use if there is  no  PRINTER  environment
              variable,  the  user has not specified a printer, or there is no
              printcap information.

       default_priority (default: "A")
              Default priority (class) for printing jobs.  This is  also  used
              as the job class.

       default_remote_host (default: "%H")
              The default remote host to use.

       default_tmp_dir (default: /tmp)
              Directory for temporary files.

       domain_name (default: "")
              This  parameter  is optional, and is appended to the hostname to
              make it into a fully_qualified domain name,  ie.  class.iona.ie.
              It will only be used if the software cannot determine the domain
              name using other means, such as gethostbyname(3n).

       ff (default: \f)
              Formfeed string.

       filter_ld_path
              (default: /lib:/usr/lib:/usr/5lib:/usr/ucblib) The value for the
              environment  variable LD_LIBRARY_PATH, both used when executing,
              and passed on to filters.  This variable is used to find  shared
              libraries on SunOS, Solaris and Linux.

       filter_options
              (default: "$C $F $H $J $L $P $Q $R $Z $a $c $d $e $f $h $i $j $k
              $l $n $p $r $s $w $x $y $-a") If the "bkf" (backwards compatible
              filter)  flags is not set in the printcap entry and the original
              filter specification does not have a  `$`  in  it,  this  option
              string  is  appended  to  a filter specification, and the string
              expanded with values  from  the  printcap  information  and  job
              information.   (see  of_filter_options,  filter_options, bk_fil-
              ter_options, bk_of_filter_options)

       filter_path
              (default: /bin:/usr/bin:) The value for the environment variable
              PATH,  both used to find filters and passed on to filters run by



LPRng                      LPRng-3.9.0                          4





LPD.CONF(5)                                           LPD.CONF(5)


              lpd and lpr.

       force_poll (default: no)
              Some software packages put print jobs directly  into  the  spool
              queues.   The  force_poll  flag  forces lpd to periodically poll
              spool queues looking for jobs  and  no  server.   The  poll_time
              variable sets the interval between polls.

       full_time (default: no)
              Use full time and date format in logging and error messages.

       fx (default: "")
              See  printcap(5)  for  details.   This specifies the job formats
              allowed for this queue.

       group (default "daemon")
              The group to use for file  ownership  and  process  permissions.
              Used  only  by lpd; this can be the name of a group or a number.
              All filters will run as the specified group.  Note that  if  the
              group  value  is  0,  then the real user group of the process at
              startup will be used.

       kerberos_keytab (default "/etc/lpd.keytab")
              The keytab file to be used by the LPD server when using built-in
              kerberos authentication.  The keytab file should be owned by the
              LPD server, and be readable/writable only by it (i.e. - 600 per-
              missions).

       kerberos_life (default NULL)
              The  lifetime  of  a  Kerberos ticket.  NULL selects the default
              lifetime.  Time should be specified using the standard  Kerberos
              time representations.

       kerberos_forward_principal (default NULL)
              remote principal used by server when forwarding

       kerberos_renew (default NULL)
              The  renewal of a Kerberos ticket.  NULL selects a non-renewable
              ticket.  Time should be specified using  the  standard  Kerberos
              time representations.

       kerberos_server_principal (default "lpr")
              Server  principal  used  when  client  sending to server or when
              server is originating connection to another server for  forward-
              ing.

       kerberos_service (default "lpr")
              The  service  name  used to make requests to the LPD server when
              using kerberos authentication.  For example, if kerberos_service
              has the value lpr, the server is on host alpha.com, and the ker-
              beros domain is ALPHA.COM,  then  the  kerberos  principal  name
              would be:
              lpr/alpha.com@ALPHA.COM.




LPRng                      LPRng-3.9.0                          5





LPD.CONF(5)                                           LPD.CONF(5)


       la (default: yes)
              See printcap(5) for details.

       lf (default: log)
              Name of the log file.

       lo (default: lock)
              Name of the lock file.

       localhost
              (default "localhost") The name of the localhost entry to be used
              for the TCP/IP loopback interface.  The  TCP/IP  connection  may
              originate  from the local host; use this name to check to see if
              the local host address is in the IP address database, and use it
              as  the origination address for local connections.  This is done
              to avoid problems with multi-homed hosts who  originate  connec-
              tions from different interfaces.

       lockfile (default: /var/spool/lpd/lpd)
              The  file used to indicate the presence of an lpd server running
              on the host.  The lpd_port value is  appended  to  the  lockfile
              value  to provide a unique lockfile even when different versions
              of LPRng are running on the same system.

       logger_destination
              (default: "") This specifies a destination for  logger  informa-
              tion generated by the lpd server.  The formation of the destina-
              tion specification  is  host[%port][,(TCP|UDP)].   For  example,
              localhost%2001,UDP  would  send logger information to the local-
              host IP address, on port  2001  using  the  UPD  protocol.   The
              default port and protocol are set by the default_logger_port and
              default_logger_protocol configuration variables respectively.

       longnumber
              (default: no) RFC1179 requires  3  digit  job  numbers;  setting
              longnumber to yes allows 6 digit numbers.  If the backwards_com-
              patible flag is set, only 3 digit numbers will be used.

       lpd_port (default: printer)  [ipaddr%]port
              The port that lpd binds to, and that lpr and  the  other  client
              programs send their requests to.  The specification has the for-
              mat ipaddr%port.  If the ipaddress is specified then a  bind  to
              only  this address and port is done.  If the port value is not a
              number a service lookup is performed and the corresponding  ser-
              vice  port  is  used; see services(5).  This parameter is useful
              for debugging a new installation of LPRng, in that running LPRng
              on  a  different port from the default will not interfere with a
              previous installation of LPD or LPRng.

       lpd_printcap_path (default: "")
              The location of lpd server only printcap  database  information.
              If  this  is nonblank the printcap_pathP will not be used by the
              lpd server.




LPRng                      LPRng-3.9.0                          6





LPD.CONF(5)                                           LPD.CONF(5)


       mail_operator_on_error (default: "")
              Put this person on the CC-list of the mail, if it is not a  suc-
              cess  mail.  (So  in addition to the person who made the printer
              request, also this person gets error messages,  but  no  success
              messages.)

       max_status_line (default: 79)
              An integer value specifying the numbers of characters to be used
              for displaying simple job status;  this includes the queue posi-
              tion, job identifier,  job contents, size, and time.  A 0 (zero)
              value indicates no restrictions.

       max_status_size (default: 10 (Kbytes))
              An integer value specifying (in K bytes) the maximum size of the
              status  file  to  be  generated during printing operations.  A 0
              value will create unlimited size status files.   When  the  file
              size  exceeds  this  value, it is truncated to min_status_size K
              bytes.

       mc (default: 1)
              See printcap(5) for details.

       min_status_size (default: 0 (Kbytes))
              Minimum status size.  If 0, defaults to 20 percent  of  max_sta-
              tus_size.

       minfree (default: 0)
              The  amount of free space (in Kbytes) needed in the spool direc-
              tory in order for a job to be  accepted.   If  0,  there  is  no
              limit; if the parameter is the name of a file rather than a num-
              ber, the file must contain a numerical minimum  free  value  (in
              Kbytes).   This  value  is  overriden  by  the printcap mi field
              value.

       ms_time_resolution
              (default: FALSE) This flag causes the  time  information  to  be
              printed to millisecond accuracy.  This is overkill for most pur-
              poses.

       of_filter_options
              (default: "") If this is not set, the value defaults to the same
              as  the  filter_options  value.  This string is appended to a OF
              filter specification, and the string expanded with  values  from
              the  printcap  information  and  job  information.  If the "bkf"
              (backwards compatible filter)  flags  is  set  in  the  printcap
              entry,  of  bk_of_filter_options  value is appended instead (see
              of_filter_options, filter_options, bk_filter_options, bk_of_fil-
              ter_options)

       originate_port
              (default:  "721  731")  A  range  of  port  numbers  to orginate
              requests from.  When sending service requests, the software will
              try  to open and bind to these ports to originate a request to a
              server.  If no port is given, or all of the requested ports  are



LPRng                      LPRng-3.9.0                          7





LPD.CONF(5)                                           LPD.CONF(5)


              unavailable  or  cannot  be  bound to, then a normal use port is
              requested.  Note that on UNIX systems, if a port  in  the  range
              0-1023 is requested the EUID of the process must be root for the
              request  to  be  granted.   Note  that  RFC1179  specifies  that
              requests must originate from ports in the range 721-731.

       pass_env
              (default:  "PGPPASS,PGPPATH")  Client programs such as LPR, LPC,
              etc., will pass these environment variables to any  filter  pro-
              grams they start.

       poll_time (default: 6000)
              Interval in seconds at which LPD checks for queues with jobs and
              no server active.  See force_poll as well.

       pl (default: 66)
              See printcap(5) for details.

       pr (default: /bin/pr)
              See printcap(5) for details.

       printcap_path
              (default: "/etc/printcap") The location of the printcap database
              file.   If  a  file or filter does not exist, it is considered a
              fatal error.  All valid entries in these  files  will  be  used.
              See PRINTCAP LOOKUP for details.

       perms_path
              (default:
              /etc/lpd.perms:/usr/etc/lpd.perms:/var/spool/lpd/lpd.perms.%h)
              The  location of the printer permissions database.  If a file or
              filter does not exist, it is skipped.  The first file or  filter
              that  exists  and  is  readable  will  be used.  See PERMISSIONS
              LOOKUP for details.

       pw (default: 80)
              See printcap(5) for details.

       save_on_error
              (default: no) Save a job in the spool queue if it has  an  error
              rather than removing it.

       save_when_done
              (default:  no)  Save  a  job in the spool queue after completion
              rather than removing it.

       send_data_first
              (default: no) Send data files of a job first,  followed  by  the
              control file.

       send_failure_action (default: "")
              The  lpd  server  uses this to determine the action to take when
              unable to print or process a job.  The keyword abort will  cause
              it to terminate operations, leaving the job in the queue, remove



LPRng                      LPRng-3.9.0                          8





LPD.CONF(5)                                           LPD.CONF(5)


              will cause it to remove the job, retry will cause  it  to  retry
              the  job,  and  hold will cause it to hold the job with an error
              indication.  If the value is a filter, then the filter  will  be
              invoked  and the exit status of the filter used to determine the
              actions.

       send_job_rw_timeout (default: 6000)
              When printing or sending a job to a remote printer, use this  as
              a  write to the device or remote host timeout value.  If a time-
              out occurs, then a FAIL status is returned  and  the  send_fail-
              ure_action value is used to determine what to do on failure.

       send_try (default: 3)
              Numbers  of  times to try to send a job to the printer or remote
              host.  A 0 value means an infinite number of times.

       sendmail (default: "/usr/lib/sendmail -oi -t")
              If the argument is empty then all mail_related functionality  is
              disabled.   The arguments are the command to run when mail is to
              be sent.  The command used needs to be able to accept  the  mes-
              sage  on stdin, with no arguments.  The message will contain the
              To:, From:, Cc: and Subject: headers.

       server_tmp_dir (default: /tmp)
              Temporary dir for the server.

       spool_dir_perms (default: 042700)
              Permissions of the spool directories.

       spool_file_perms (default: 0600)
              Permissions of the spool files.

       syslog_device (default: /dev/console)
              Log to this device if all else fails.

       use_date (default: no)
              No information about this parameter available.

       use_identifier (default: no)
              Add a job identifier line to the control  file,  using  the  'A'
              entry in the control file.

       use_info_cache (default: yes)
              If  this  is  set  to  yes,  lpd.perms  and printcap information
              lookups will be cached for later use.  Only lookups in the  main
              databases  will  be  cached,  not  lookups  in  the  per_printer
              databases.  You can force the lpd to flush its cache and  reread
              the permissions file by sending it a SIGHUP.

       use_queuename (default: no)
              Put  an entry into control files identifying the spool queue the
              job was originally sent to.  The entry  has  the  form  'Qspool-
              name',  and  its value can be passed to filters.  This is useful
              for setting up a spool queue which  formats  jobs  in  different



LPRng                      LPRng-3.9.0                          9





LPD.CONF(5)                                           LPD.CONF(5)


              ways, depending on the name of the queue.

       use_shorthost (default: no)
              By  default,  names  of  lpr job files used the originating host
              fully qualified domain name.  This can exceed 14 characters, the
              limit  of  file  names  on some UNIX systems.  If this is set to
              yes, the non-qualified name will be used, and if the  host  name
              is at most 8 characters the file name will be at most 14 charac-
              ters long.

       user (default: daemon)
              The user that lpd and its filters runs as, and the owner of  the
              spool directories and other lpd_writable files.  This can be the
              name of a user or a number.  If the user value is  0,  then  the
              real  UID of the program when started will be used.  This allows
              a non_root user to test the functionality of the LRPng software.


PRINTCAP LOOKUP, DATABASE FILES AND FILTERS
       The  printcap_path  and  printer_perms_path variables specify a list of
       either data base files or filters to use to get printcap or  permission
       entries for a printer.  To get information, the filter is started and a
       single line with the printer name is sent to it.  Note that the printer
       name all is used to request information either about all printers, or a
       specific printer entry that has a list of  all  printers.   See  print-
       cap(5) for more details.

       To find the printcap information, LPRng programs will read the database
       files specified in the printcap_path entry.  The lpd server  will  read
       any  additional files specified in the lpd_printcap_path entry.  If any
       of the files is missing or non-readable  a  fatal  error  will  result.
       After having searched the various files, if a filter has been specified
       the filter will be started and the required printer name will  be  sent
       to the filter.  The output from the filter will be used as the printcap
       information.

SECURITY-RELATED PARAMETERS
       Environment variables are sanitized by lpd and the  other  executables,
       in  that  the  variables IFS, LD_PRELOAD and LD_PROFILE are all deleted
       from the environment passed to filters  and  any  other  sub_processes.
       For  more  reliability,  script  filters  should set their own PATH and
       LD_LIBRARY_PATH variables.

       All filters will run as the user and group specified by the  group  and
       user variables.


EXAMPLE
       # lpd.conf generated from  on Wed Apr  7 07:59:48 PDT 1999

       #   The values in this file are the default values.
       #   If you modify the file,  set the value to something other than the default
       #   For example, '# default force_localhost' means
       #     the 'force_localhost' option value is on or 1.



LPRng                      LPRng-3.9.0                         10





LPD.CONF(5)                                           LPD.CONF(5)


       #   Uncomment this and change it to read 'force_localhost@'

       # Purpose: always print banner, ignore lpr -h option
       #   default ab@
       # Purpose: query accounting server when connected
       #   default achk@
       # Purpose: accounting at end (see also af, la, ar, as)
       #   default ae=jobend $H $n $P $k $b $t
       # Purpose: name of accounting file (see also la, ar)
       #   default af=
       af=acct
       # Purpose: automatically hold all jobs
       #   default ah@
       ah
       # Purpose: Allow duplicate command line arguments (legacy requirement)
       #   default allow_duplicate_args@

FILES
       The  files used by LPRng are set by values in the printer configuration
       file.  The following are a commonly used set of default values.
       /etc/LPRng/lpd.conf                          LPRng configuration file
       ${HOME}/.printcap                            user printer description file
       /etc/printcap                                printer description file
       /etc/LPRng/lpd.perms                         permissions
       /var/run/lpd                                 lock file for queue control
       /var/spool/lpd                               spool directories
       /var/spool/lpd/QUEUE/control                 queue control
       /var/spool/lpd/QUEUE/log                     trace or debug log file
       /var/spool/lpd/QUEUE/acct                    accounting file
       /var/spool/lpd/QUEUE/status                  status file

SEE ALSO
       lpc(8),  lpd(8),  checkpc(8),  lpr(1),  lpq(1),  lprm(1),  printcap(5),
       lpd.perms(5), pr(1), lprng_certs(1), lprng_index_certs(1).

DIAGNOSTICS
       Most of the diagnostics are self explanatory.
       If you are puzzled over the exact cause of failure,
       set the debugging level on (-D5) and run again.
       The debugging information will
       help you to pinpoint the exact cause of failure.

HISTORY
       LPRng  is  a enhanced printer spooler system with functionality similar
       to  the  Berkeley  LPR   software.    The   LPRng   mailing   list   is
       lprng@lprng.com;  subscribe  by sending mail to lprng-request@lprng.com
       with the word subscribe in the body.  The software  is  available  from
       ftp://ftp.lprng.com/pub/LPRng.

AUTHOR
       Patrick Powell <papowell@lprng.com>.






LPRng                      LPRng-3.9.0                         11


