DNETD.CONF(5)
π DNETD.CONF β the DECnet objects file, bestie edition π
okay so quick vibe check: this is the manual page for /etc/dnetd.conf from the File Formats Manual section. yes we're doing file formats today, it's giving "config file but make it DECnet". sit down, grab a strawberry π, let's go.
β¨ NAME β¨
/etc/dnetd.conf β the DECnet objects file π¦
πΈ DESCRIPTION πΈ
/etc/dnetd.conf is an ASCII file that holds the description of all the objects the DECnet super-server dnetd knows about. think of it as the guest list, and dnetd is the bouncer π
There's one entry per line, and every single line is shaped like this:
Name Number Authenticate User command
and here's what each field is doing, no gatekeeping:
Nameβ the name of the object. for numbered objects this is literally just there for documentation purposes (decorative, iconic, does nothing). for named objects it is the actual object name. and there's a special little object name*that can execute an arbitrarily named program or script (more on that later π).Numberβ the DECnet object number. these numbers should match the well-known object numbers in a VMS object database, fr fr. if the object number is zero then the name is used instead. also: there should be no duplicate object numbers in the file, apart from number 0. don't do it. just don't.Authenticateβ whether to authenticate incoming connections. this flag should be aYor anN, no in-between situationships.- if it's
Y, incoming connections get authenticated either by the username and password given on the remote command line, or by the DECnet proxy databasedecnet.proxy. - if it's
N, the next field specifies the username that the daemon will be run as.
- if it's
Usernameβ the username the daemon will run as when the incoming command is not authenticated (i.e. when theAuthenticateflag is set toN). β οΈ if this username doesn't exist andAuthenticateis set toN, then incoming connections for that object will fail. like, full on ghosted.Commandβ the name and arguments of the command to run when a connection comes in for that object.- if it's the string
"internal"then the object gets handled bydnetdif it can. currently onlyMIRRORand arbitraryTASKs can be handled internally bydnetd. - if the name starts with a slash
/, it's assumed to be the full path of the program to run. - if it doesn't start with a slash,
dnetdwill search its default directory for program files. iykyk π§
- if it's the string
π NOTES π
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 gets set to /dev/null (it's giving silent treatment, honestly relatable). the DECnet daemons supplied in the dnprogs suite automatically detect this, so they can be run from dnetd or standalone. flexible queen π
there is a subtle difference between objects handled by the special name * and those explicitly named in the file, and the way that this is such a big deal, let me explain:
- objects handled by name
*internally are run under the control of a pseudo-tty, which means they appear to be talking to a terminal, and CR/LF conversion will be done, so thatTYPE "0=TASK"will produce sensible output on VMS. β¨tty servicesβ¨ - objects explicitly named just connect directly to the DECnet socket, so they 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. main character energy: security edition π
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 file names are genuinely unwieldy on Unix π
it is recommended that arbitrary objects be run as a special anonymous user to avoid security problems. please bestie, listen to the manpage on this one π
and the best part: any changes to /etc/dnetd.conf will take effect immediately β you do not need to tell dnetd that it has changed. it just knows. iconic behavior, honestly. no reload, no restart, no "did you try turning it off and on again". periodt π
π EXAMPLE π
this is the default file provided. note that the * object is commented out for security reasons β do not come for me, it's literally in the file:
# /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
look at her. a whole functional config file. we love to see it π
π₯ SEE ALSO π₯
go read those too, they're part of the lore π«Ά
and that's the whole page, bestie!! this was the DECnet for Linux version, dated 5 December 1999 β so like, vintage. retro. a classic. she was slaying before we were even born and she's still serving β¨ππ
π¦ where this page comes from
- ubuntu jammy: dnet-common 2.65build2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms