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

SEE ALSO

lpr(1) lpq(1)
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout