snntpd,v0.3.8(8)
π snntpd β the tiny news server that could π
okay bestie, so this is the manual page for snntpd, version 0.3.8, and it lives in section 8 of the System Manager's Manual (that's the sysadmin-y section, iykyk). It's a small news server. That's literally it. Small. News. Server. Let's get into it. β¨
β¨ NAME β¨
snntpd β a small news server π¦
πΈ SYNOPSIS πΈ
snntpd [-t timeout] [-P] [-S] [logger...]
π DESCRIPTION π
So here's the vibe: snntpd is a small news server. Tiny. Compact. Iconic. But she does not run herself, okay? She needs a grown-up to launch her:
- you run her under
inetdortcpserver - as root, or as the owner of
/var/spool/sn - she does not fork into the background β no disappearing acts, she stays right there π«Ά
- she expects to read and write from and to the network on descriptors
0and1
that's the whole setup. no daemon drama. periodt.
π ARGUMENTS π
logger...β usually/usr/bin/loggerβ this gets treated as a logging program, and all log output gets piped straight into it. If you don't specifylogger..., then log messages go to descriptor2instead. pick your fighter π
π OPTIONS π
-t timeoutβ tellssnntpdhow long to wait for input before she gives up and exits. thetimeoutis in seconds, and the default is600. she's patient, but not that patient π§-Pβ makessnntpdinclude her pid</> in the log output. receipts, basically π-Sβ Suppress the NNTP greeting on startup. super useful if you wanna do authentication before runningsnntpd, or if you want to serve your own greeting from a wrapper. main character energy: you do the talking, not her π
π POSTING AND POSTING PERMISSIONS π
okay so posting is usually handled externally by the /usr/sbin/SNPOST script. that script is the one doing the heavy lifting:
- fine-grain posting control
- handling of control messages
- the ultimate distribution of the posted article
snntpd herself permits or denies posting in a very simple manner. here's the whole flowchart, no notes:
- If
/var/spool/sn/.nopostexists, posting is not allowed. π« - Otherwise, if the environment variable
POSTING_OKis not set, posting is not allowed. - Otherwise if
POSTING_OKis set (to the empty string), posting is generally allowed, and all POSTed articles are piped to theSNPOSTscript, which has the final say in the matter. the value of$POSTING_OKis not currently used, but is reserved. she's holding that seat for later, bestie π
π¦ FILES π¦
/var/spool/sn/.fifoβ if this file exists, and is a fifo,snntpdwill write the name of a newsgroup into it as that newsgroup becomes the current one. if the fifo does not exist,snntpdwill not create it. she doesn't do DIY π οΈ/var/spool/sn/.noserviceβ if this file exists,snntpdwill display its first line and exit. if the file can't be read or is empty, a default message is displayed. this is useful for temporarily disabling the news server while you perform any maintenance. go take your lil break, queen π/var/spool/sn/.nopostβ see POSTING PERMISSIONS above. β¬οΈ/var/spool/sn/.SNPOSTβ if this script or program exists, it is invoked instead ofSNPOSTto accept a posted article. the understudy ate π₯/var/spool/sn/news.group.name/.nopostβ okay these files really belong toSNPOST, and it is unfortunate thatsnntpdhas to check for their existence to determine the posting flag for theLISTcommand. see/usr/sbin/SNPOST. it's giving codependency ngl π/var/spool/sn/news.group.name/.infoβ if this file exists, its first line is taken as the description of that group, for use with theLIST NEWSGROUPScommand. π¬/var/spool/sn/news.group.name/.timesβ is a binary file containing entry times, to support theNEWNEWScommand. β°/var/spool/sn/news.group.name/.createdβ is an empty file retained for its timestamp, to support theNEWGROUPScommand. π
π SIGNALS π
If snntpd catches SIGHUP, the files /var/spool/sn/{.fifo,.noservice,.nopost} (see below) are checked again, just like they are during startup. she's re-reading the room π
Other signals have default behaviour. no special treatment, no extra flair π
π ENVIRONMENT VARIABLES π
See also /usr/sbin/SNPOST for a list of environment variables exported by snntpd. she hands off the whole group chat.
PATHβ thePATHmust be set such thatsnntpdcan findSNPOSTin order to accept postings. ifPATHdoes not include/usr/sbin, then/usr/sbinwill be appended to it. she'll find her way home π‘POSTING_OKβ this variable helps determine the site-wide posting policy. see POSTING PERMISSIONS above. β¬οΈTCPREMOTEIPβ if this value is set, it is taken to be the dotted-quad IP address of the connecting client. if it is not set,snntpdattempts to derive it for herself, and then set its value. self-sufficient icon β¨TCPLOCALIPβ as above, but for the server's dotted-quad IP. π₯οΈSNROOTβ if this is set and is not empty, the value is used everywhere in place of/var/spool/sn, the default news spool directory. relocate the whole kingdom, slay π
π SEE ALSO π
snsend(8)/usr/sbin/SNPOST
N.B. β this page was written by Harold Tay, and it's from snntpd,v0.3.8(8). that's the version, bestie. that's the whole lore. π«Άπ
thanks for reading the whole thing, you absolute legend β go run a news server, no cap πΈβ¨
π¦ where this page comes from
- debian bookworm: sn 0.3.8-12
- ubuntu jammy: sn 0.3.8-12
- ubuntu noble: sn 0.3.8-12
- ubuntu resolute: sn 0.3.8-12
- ubuntu stonking: sn 0.3.8-12
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms