---
name: "snntpd"
section: "8"
platform: "linux"
package: "sn"
version: "0.3.8-12"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/snntpd"
---

# snntpd(8)

small news server

## NAME

snntpd - small news server

## SYNOPSIS

**snntpd** \[-*t timeout*\] \[-*P*\] \[-*S*\] \[*logger*...\]\

## DESCRIPTION

**snntpd** is a small news server.  It needs to be run under inetd or tcpserver, as root or as the owner of /var/spool/sn. **snntpd** does not fork into the background. It expects to read and write from and to the network on descriptors 0 and 1.

## ARGUMENTS

*logger*... (usually /usr/bin/logger) is taken to be a logging program, and all log output is piped to it. If *logger*... is not specified, log messages are directed to descriptor 2.

## OPTIONS

- \-*t timeout*

  specifies how long **snntpd** should wait for input before it gives up and exits. *timeout* is in seconds and defaults to 600.

- \-*P*

  **snntpd** includes it's pid in log output.

- \-*S*

  Suppress NNTP greeting on startup.  This is useful if you want to perform authentication before running **snntpd**, or want to provide your own greeting, from a wrapper.

## POSTING AND POSTING PERMISSIONS

Posts are usually handled externally by the /usr/sbin/**SNPOST** script,  which is responsible for fine-grain posting control; handling of control messages; and the ultimate distribution of the posted article.

**snntpd** permits or denies posting in a very simple manner:

If /var/spool/sn/**.nopost** exists, posting is not allowed.

Otherwise, if the environment variable **POSTING\_OK** is not set, posting is not allowed.

Otherwise if **POSTING\_OK** is set (to the empty string), posting is generally allowed, and all POSTed articles are piped to the **SNPOST** script, which has the final say in the matter.  The value of $**POSTING\_OK** is not currently used, but is reserved.

## FILES

- /var/spool/sn/**.fifo**

  If this file exists, and is a fifo, **snntpd** will write the name of a newsgroup into it as that newsgroup becomes the current one.  If the fifo does not exist **snntpd** will not create it.

- /var/spool/sn/**.noservice**

  If this file exists, **snntpd** will 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.

- /var/spool/sn/**.nopost**

  See **POSTING PERMISSIONS** above.

- /var/spool/sn/**.SNPOST**

  If this script or program exists, it is invoked instead of **SNPOST** to accept a posted article.

- /var/spool/sn/news.group.name/**.nopost**

  These files really belong to **SNPOST**, and it is unfortunate that **snntpd** has to check for their existence to determine the posting flag for the LIST command.  See /usr/sbin/**SNPOST**.

- /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 the LIST NEWSGROUPS command.

- /var/spool/sn/news.group.name/**.times**

  is a binary file containing entry times, to support the *NEWNEWS* command.

- /var/spool/sn/news.group.name/**.created**

  is an empty file retained for it's timestamp, to support the *NEWGROUPS* command.

## SIGNALS

If **snntpd** catches SIGHUP, the files /var/spool/sn/{**.fifo**,**.noservice**,**.nopost**} (see below) are checked again, as they are during startup.  Other signals have default behaviour.

## ENVIRONMENT VARIABLES

See also /usr/sbin/**SNPOST** for a list of environment variables exported by **snntpd**.

- **PATH**

  The PATH must be set such that **snntpd** can find **SNPOST** in order to accept postings. If **PATH** does not include /usr/sbin, /usr/sbin will be appended to it.

- **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, **snntpd** attempts to derive it for itself, and then set its value.

- **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.

## SEE ALSO

[snsend(8)](/snsend/8.md), /usr/sbin/SNPOST
