Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
PCNFSD(8)		    System Manager's Manual		     PCNFSD(8)

       pcnfsd -	(PC)NFS	authentication and print request server


       This program is freely redistributable.

       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)	super-
       daemon. 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 de-
       tails of	the protocols.

       The requests serviced by	pcnfsd fall into three categories: authentica-
       tion,  printing,	 and  other. Only the authentication and printing ser-
       vices have administrative significance.

       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,	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




       indicating an inclusive range.

       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 re-
       turns 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 sub-
       directory  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	trans-
       ferred  print  data  to	a file in this directory, it will issue	a PCN-
       FSD_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. 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

       name is the name	of the printer you want	to define.  alias-for  is  the
       name  of	 a "real" printer which	corresponds to this printer. For exam-
       ple, a request to display the queue for name will  be  translated  into
       the  corresponding  request  for	the printer alias-for. If you have de-
       fined 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.) command is a command which will
       be  executed  whenever a	file is	printed	on name.  This command is exe-
       cuted by	the Bourne shell, /bin/sh using	the -c option. For complex op-
       erations	 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 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

       $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  en-
       script 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(R) printer.  If the client requests a list of
       the print queue for the printer rotated the pcnfsd daemon  will	trans-
       late 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 "-".

       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.


       lpr(1) lpq(1)

				 25 April 1991			     PCNFSD(8)


Want to link to this manual page? Use this URL:

home | help