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
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
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 system.
- $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® 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
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.