pcnfsd(8)

pcnfsd - (PC)NFS authentication and print request server

As shipped in IRIX 6.5. First release of IRIX 6.5.

NAME
     pcnfsd - (PC)NFS authentication and print request server

SYNOPSIS
     /usr/etc/rpc.pcnfsd

AVAILABILITY
     This program is freely redistributable.

DESCRIPTION
     pcnfsd is an RPC server that supports ONC clients on PC (DOS, OS/2,
     Macintosh, and other) systems. This page describes version two of the
     pcnfsd server.

     rpc.pcnfsd may be started from /etc/rc.local or by the inetd(8)
     superdaemon. It reads the configuration file /etc/pcnfsd.conf if present,
     and then services RPC requests directed to program number 150001. This
     release of the pcnfsd daemon supports both version 1 and version 2 of the
     pcnfsd protocol. Consult the rpcgen source file pcnfsd.x for details of
     the protocols.

     The requests serviced by pcnfsd fall into three categories:
     authentication, printing, and other. Only the authentication and printing
     services have administrative significance.

AUTHENTICATION
     When pcnfsd receives a PCNFSD_AUTH or PCNFSD2_AUTH request, it will "log
     in" the user by validating the username and password and returning the
     corresponding uid, gids, home directory, and umask. If pcnfsd was built
     with the WTMP compile-time option, it will also append a record to the
     wtmp(5) data base. If you do not wish to record PC "logins" in this way,
     you should add a line of the form

          wtmp off

     to the /etc/pcnfsd.conf file.

     By default, pcnfsd will only allow authentication or print requests for
     users with uids in the range 101 to 60002. (This corresponds in SVR4 to
     the range for non-system accounts.) To override this, you may add a line
     of the form

          uidrange range[,range]...

     to the /etc/pcnfsd.conf file. Here, each range is of the form

          uid

     or

          uid-uid
     indicating an inclusive range.

PRINTING
     pcnfsd supports a printing model based on the use of NFS to transfer the
     actual print data from the client to the server. The client system issues
     a PCNFSD_PR_INIT or PCNFSD2_PR_INIT request, and the server returns the
     path to a spool directory which the client may use and which is exported
     by NFS.  pcnfsd creates a subdirectory for each of its clients: the
     parent directory is normally /usr/spool/pcnfs and the subdirectory is the
     hostname of the client system.  If you wish to use a different parent
     directory, you should add a line of the form

          spooldir path

     to the /etc/pcnfsd.conf file.

     Once a client has mounted the spool directory using NFS and has
     transferred print data to a file in this directory, it will issue a
     PCNFSD_PR_START or PCNFSD2_PR_START request. pcnfsd handles this, and
     most other print-related requests, by constructing a command based on the
     printing services of the server operating system and executing the
     command using the identity of the PC user. Since this involves set-user-
     id privileges, pcnfsd must be run as root.

     Every print request from the client includes the name of the printer
     which is to be used. In SunOS, this name corresponds to a printer
     definition in the /etc/printcap(5) database. If you wish to define a
     non-standard way of processing print data, you should define a new
     printer and arrange for the client to print to this printer. There are
     two ways of setting up a new printer.  The first involves the addition of
     an entry to /etc/printcap(5) and the creation of filters to perform the
     required processing. This is outside the scope of this discussion. In
     addition, pcnfsd includes a mechanism by which  you can define virtual
     printers known only to pcnfsd clients. Each printer is defined by a line
     in the /etc/pcnfsd.conf file of the following form

          printer name alias-for command

     name is the name of the printer you want to define. alias-for is the name
     of a "real" printer which corresponds to this printer. For example, a
     request to display the queue for name will be translated into the
     corresponding request for the printer alias-for. If you have defined a
     printer in such a way that there is no "real" printer to which it
     corresponds, use a single "-" for this field. (See the definition of the
     printer test below for an example.) command is a command which will be
     executed whenever a file is printed on name.  This command is executed by
     the Bourne shell, /bin/sh using the -c option. For complex operations you
     should construct an executable shell program and invoke that in command.
     Within command the following tokens will be replaced:

     Token     Substitution

     Replaced by the full path name of the print data file. When
               the command has been executed, the file will be unlinked.

     Replaced by the username of the user logged in to the client system.

     Replaced by the host name of the client system.

     Consider the following example /etc/pcnfsd.conf file:

          printer rotated lw /usr/local/bin/enscript -2r $FILE
          printer test - /usr/bin/cp $FILE /usr/tmp/$HOST-$USER

     If a client system prints a job on the printer rotated the utility
     enscript will be invoked to pre-process the file $FILE. In this case, the
     -2r option causes the file to be printed in two-column rotated format on
     the default PostScriptr printer.  If the client requests a list of the
     print queue for the printer rotated the pcnfsd daemon will translate this
     into a request for a listing for the printer lw.

     The printer test is used only for testing. Any file sent to this printer
     will be copied into /usr/tmp. Any request to list the queue, check the
     status, etc. of printer test will be rejected because the alias-for has
     been specified as "-".

RECONFIGURATION
     pcnfsd will detect when printers are added or deleted and will rebuild
     its list of valid printers. To do this, it checks the modification time
     of /etc/printcap for BSD-style systems or /etc/lp/printers for SVR4-based
     systems. However, it does not monitor the file /etc/pcnfsd.conf for
     updates; if you change this file, it is still necessary to kill and
     restart pcnfsd in order that the changes can take effect.

FILES
     /etc/pcnfsd.conf

SEE ALSO
     lp(1) lpstat(1) lpq(1)