


PCNFSD(8C)            MAINTENANCE COMMANDS             PCNFSD(8C)



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.

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 direc-
     tory, you should add a line of the form

          spooldir _p_a_t_h



Sun Release 4.0    Last change: 25 April 1991                   1






PCNFSD(8C)            MAINTENANCE COMMANDS             PCNFSD(8C)



     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 set-
     ting 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 _n_a_m_e _a_l_i_a_s-_f_o_r _c_o_m_m_a_n_d

     _n_a_m_e is the name of the printer you want to  define.  _a_l_i_a_s-
     _f_o_r  is  the  name  of a "real" printer which corresponds to
     this printer. For example, a request to  display  the  queue
     for  _n_a_m_e  will be translated into the corresponding request
     for the printer _a_l_i_a_s-_f_o_r. 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.) _c_o_m_-
     _m_a_n_d is a command which will be executed whenever a file  is
     printed  on  _n_a_m_e.   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 _c_o_m_m_a_n_d.  Within _c_o_m_m_a_n_d 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.



Sun Release 4.0    Last change: 25 April 1991                   2






PCNFSD(8C)            MAINTENANCE COMMANDS             PCNFSD(8C)



     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8r9 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 _a_l_i_a_s-_f_o_r has been specified as "-".

FILES
     /etc/pcnfsd.conf

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































Sun Release 4.0    Last change: 25 April 1991                   3



