@(#) @(#)pcnfsd.8c 1.1 9/3/91;
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.
wtmp off
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
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
10 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 \s-2$FILE\s0
printer test - /usr/bin/cp \s-2$FILE\s0 /usr/tmp/\s-2$HOST\s0-\s-2$USER\s0
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 "-".
0
20 /etc/pcnfsd.conf configuration file
20 /export/pcnfs default print spool directory