Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.

RPC.PCNFSD(8)               System Manager's Manual              RPC.PCNFSD(8)

       pcnfsd, rpc.pcnfsd - (PC)NFS authentication and print request server


       pcnfsd is an RPC server that supports Sun 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.

       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.

       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 /export/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

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

       $USER     Replaced by the username of the user logged in to the client

       $HOST     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 PostScript(R) 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 "-".

       /etc/pcnfsd.conf    configuration file
       /export/pcnfs       default print spool directory

       lpr(1), lpc(8)

       The pcnfsd source code is distributed by Sun Microsystems, Inc. with
       their PC/NFS product under terms described in common.h in that source
       code.  Those terms require that you be informed that this version of
       pcnfsd was modified to run on NetBSD and is NOT supported by Sun.

                                 25 April 1991                   RPC.PCNFSD(8)