pcnfsd, rpc.pcnfsd - The (PC)NFS authentication and print
request server
/usr/sbin/pcnfsd
The pcnfsd daemon is an server that supports ONC clients
on PC (DOS, OS/2, Macintosh, and other) systems. This reference
page describes Version 2 of the pcnfsd server.
The rpc.pcnfsd daemon is started via /etc/rc.config by
default. It can be turned off by running nfssetup and by
answering 'no' to the appropriate question. The pcnfsd
daemon reads the /etc/pcnfsd.conf configuration file 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.
The requests serviced by pcnfsd fall into three categories:
authentication, printing, and other. Only the
authentication and printing services have administrative
significance.
AVAILABILITY [Toc] [Back]
This program can be redistributed freely.
AUTHENTICATION [Toc] [Back]
When pcnfsd receives a PCNFSD_AUTH or PCNFSD2_AUTH
request, it "logs in" the user by validating the user name
and password and returning the corresponding UID, GIDs,
home directory, and umask.
By default, pcnfsd only allows authentication 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 can add a line in the following format
to the /etc/pcnfsd.conf file. Here each range is either of
the following forms indicating an inclusive range:
uidrange uid
uidrange uid-uid
PRINTING [Toc] [Back]
The pcnfsd daemon 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 that the client can
use and that is exported by NFS. The pcnfsd daemon creates
a subdirectory for each of its clients: the parent directory
is normally /usr/spool/pcnfs and the subdirectory is
the host name of the client system. You must also export
the /usr/spool/pcnfs directory to the PC clients. If you
want to use a different parent directory, add a line of
the following format to the /etc/pcnfsd.conf file:
spooldir path
Once a client has mounted the spool directory by using NFS
and has transferred print data to a file in this directory,
the client issues a PCNFSD_PR_START or PCNFSD2_PR_START
request. The pcnfsd daemon handles this, and
most other print-related requests, by constructing a command
based on the printing services of the server operating
system and by 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. This name corresponds to
a printer definition in the /etc/printcap database. If you
want to define a nonstandard 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 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 format: printer
name alias-for command
The name variable is the name of the printer you want to
define and the alias-for variable is the name of a
``real'' printer that corresponds to this printer. For
example, a request to display the queue for name is 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 dash (-) for this field. (See the definition
of the printer test below for an example.) The command
variable is a command that 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 pathname of the print data file.
When the command has been executed, the file will be
unlinked.
$USER Replaced by the user name of the user logged in to the
client system.
$HOST Replaced by the host name of the client system.
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, and so on of printer
test will be rejected because the alias-for has been specified
as a dash (-).
The pcnfsd configuration file.
Commands: lp(1), lpq(1), lpstat(1)
pcnfsd(8)
[ Back ] |