Decnet objects file
/etc/dnetd.conf is an ASCII file which contains the description of the objects known to the DECnet super-server dnetd.
There is one entry per line, and each line has the format:
Name Number Authenticate User command
The field descriptions are:
The name of the object. For numbered objects this appears only for documentation purposes. For named objects it is the actual object name. There is a special object name * which can execute an arbitrarily named program or script (see later).
the DECnet object number. These numbers should match the well-known object numbers in a VMS object database. If the object number is zero then the name is used. There should be no duplicate object numbers in the file apart from number 0.
Whether to authenticate incoming connections. This flag should be a Y or N. If it is Y then incoming connections will be authenticated either by the username and password given on the remote command line or by the DECnet proxy database decnet.proxy. If it is N then the next field specifies the username that the daemon will be run as.
The username that daemon will be run as if the incoming command is not authenticated (ie the Authenticate flag is set to N). if this username does not exist, and Authenticate is set to N then incoming connections for that object will fail.
This is the name and arguments of the command to run when a connection is received for the object. If it is the string "internal" then the object will be handled by dnetd if it can. Currently only MIRROR and arbitrary TASKs can be handled internally by dnetd.
If the name starts with a slash then it is assumed to be the full path of the program to run. If not then dnetd will search its default directory for program files.
When an incoming connection is handled by dnetd it forks and executes the command named in the command field with stdin and stdout pointing to the DECnet socket. stderr will be set to /dev/null. The DECnet daemons supplied in the dnprogs suite automatically detect this and so can be run from dnetd or standalone.
There is a subtle difference between objects handled by the special name * and those explicitly named in the file:
Objects handled by name "*" internally are run under control of a pseudo-tty which means they appear to be talking to a terminal and CR/LF conversion will be done so that TYPE "0=TASK" will produce sensible output on VMS.
Objects explicitly named just connect directly to the DECnet socket so cannot take advantage of tty services and do not have CR/LF conversion done for them. Of course these objects are more secure because the system administrator has total control over which objects can be run.
dnetd will convert all task names to lower case. This is for convenience more than anything else because VMS converts them to uppercase and all uppercase files names are unwieldy on Unix.
It is recommended that arbitrary objects be run as a special anonymous user to avoid security problems.
Any changes to /etc/dnetd.conf will take effect immediately you do not need to tell dnetd that it has changed.
This is the default file provided. Note that the "*" object is commented out for security reasons.
# /etc/dnetd.conf # # name number auth? user command # FAL 17 Y none fal MIRROR 25 Y root internal MAIL 27 N vmsmail vmsmaild CTERM 42 N root ctermd DTERM 23 N root rmtermd # * 0 Y none internal