pcnfsd(8)
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 cate
gories: 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 user
name and password and returning the corresponding uid,
gids, home directory, and umask, 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 PCN FSD2_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
/var/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 direc
tory, it will issue a PCNFSD_PR_START or PCNFSD2_PR_START request. pcnfsd handles this, and most other printrelated requests, by constructing a command based on the
printing services of the server operating system and exe
cuting 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. 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 fil ters 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. aliasfor 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.) com_ mand 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 pro
gram and invoke that in command. Within command the fol lowing 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 "-".
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 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