INN.CONF(5) InterNetNews Documentation INN.CONF(5)
inn.conf - Configuration data for InterNetNews programs
inn.conf in pathetc is the primary general configuration file for all InterNetNews pro-
grams. Settings which control the general operation of various programs, as well as the
paths to all portions of the news installation, are found here. The INNCONF environment
variable, if set, specifies an alternate path to inn.conf.
This file is intended to be fairly static. Any changes made to it will generally not
affect any running programs until they restart. Unlike nearly every other configuration
file, inn.conf cannot be reloaded dynamically using ctlinnd(8); innd(8) must be stopped
and restarted for relevant changes to inn.conf to take effect ("ctlinnd xexec innd" is the
fastest way to do this.)
Blank lines and lines starting with a number sign ("#") are ignored. All other lines
specify parameters, and should be of the following form:
(Any amount of whitespace can be put after the colon and is optional.) Everything after
the colon and optional whitespace up to the end of the line is taken as the value. Multi-
word values should not be put in quotes; if they are, the quotes will be taken as part of
the value, not as delimiters. <name> is case-sensitive; "server" is not the same as
"Server" or "SERVER". (inn.conf parameters are generally all in lowercase.)
If <name> occurs more than once in the file, the first value is used. Some parameters
specified in the file may be overridden by environment variables. Most parameters have
default values if not specified in inn.conf; those defaults are noted in the description
of each parameter.
For the time being, it is strongly recommended to include every parameter in inn.conf even
if it is set to the default value, since some shell scripts don't correctly handle missing
keys that they care about. This is a difficult-to-fix bug in the current parser that will
be fixed in future versions of INN.
Many parameters take a boolean value. For all such parameters, the value may be specified
as "true", "yes", or "on" to turn it on and may be any of "false", "no", or "off" to turn
it off. The case of these values is not significant.
This documentation is extremely long and organized as a reference manual rather than as a
tutorial. If this is your first exposure to INN and these parameters, it would be better
to start by reading other man pages and referring to this one only when an inn.conf param-
eter is explicitly mentioned.
These parameters are used by a wide variety of different components of INN.
This should be the domain name of the local host. It should not have a leading
period, and it should not be a full host address. It is used only if the GetFQDN()
routine in libinn(3) cannot get the fully-qualified domain name by using either the
gethostname(3) or gethostbyname(3) calls. The check is very simple; if either routine
returns a name with a period in it, then it is assumed to have the full domain name.
The default value is unset.
The flags to pass to innd on startup. See innd(8) for details on the possible flags.
The default value is unset.
The path to the program to be used for mailing reports and control messages. The
default is pathbin/innmail. This should not normally need to be changed.
mta The command to use when mailing postings to moderators and for the use of innmail(1).
The message, with headers and an added To: header, will be piped into this program.
The string %s, if present, will be replaced by the e-mail address of the moderator.
It's strongly recommended for this command to include %s on the command line rather
than use the addresses in the To: and Cc: headers of the message, since the latter
approach allows the news server to be abused as a mechanism to send mail to arbitrary
addresses and will result in unexpected behavior. There is no default value for this
parameter; it must be set in inn.conf or a fatal error message will be logged via sys-
For most systems, "/usr/lib/sendmail -oi -oem %s" (adjusted for the correct path to
sendmail) is a good choice.
What to put into the Path: header to represent the local site. This is added to the
Path: header of all articles that pass through the system, including locally posted
articles, and is also used when processing some control messages and when naming the
server in status reports. There is no default value; this parameter must be set in
inn.conf or INN will not start. A good value to use is the fully-qualified hostname
of the system.
The name of the default NNTP server. If nnrpdposthost is not set and UNIX domain
sockets are not supported, nnrpd(8) tries to hand off locally-posted articles through
an INET domain socket to this server. actsync(8), nntpget(8), and getlist(8) also use
this value as the default server to connect to. In the latter cases, the value of the
NNTPSERVER environment variable, if it exists, overrides this. The default value is
These parameters govern incoming and outgoing feeds: what size of articles are accepted,
what filtering and verification is performed on them, whether articles in groups not car-
ried by the server are still stored and propagated, and other similar settings.
Articles older than this number of days are dropped. This setting should probably
match the setting on the "/remember/" line in expire.ctl. The default value is 10.
Which IP address innd(8) should bind itself to. This must be in dotted-quad format
(nnn.nnn.nnn.nnn). If set to "all" or not set, innd defaults to listening on all
interfaces. The value of the INND_BIND_ADDRESS environment variable, if set, over-
rides this setting. The default value is unset.
If set to a value other than 0, a hash of recently received message IDs is kept in
memory to speed history lookups. The value is the amount of memory to devote to the
cache in kilobytes. The cache is only used for incoming feeds and a small cache can
hold quite a few message IDs, so large values aren't necessarily useful unless you
have incoming feeds that are badly delayed. A good value for a system with more than
one incoming feed is 256; systems with only one incoming feed should probably leave
this at 0. The default value is 0.
Whether newsgroup creation control messages (newgroup and rmgroup) should be fed as if
they were posted to the newsgroup they are creating or deleting rather than to the
newsgroups listed in the Newsgroups: header. If this parameter is set, the newsgroup
affected by the control message will be extracted from the Control: or Subject: header
and the article will be fed as if its Newsgroups: header contained solely that news-
group. This is useful for routing control messages to peers when they are posted to
irrelevant newsgroups that shouldn't be matched against the peer's desired newsgroups
in newsfeeds. This is a boolean value and the default is false.
When using the timecaf storage method, article cancels are normally just cached to be
cancelled, not cancelled immediately. If this is set to true, they will instead by
cancelled as soon as the cancel is processed. This is a boolean value and the default
This setting is ignored unless the timecaf storage method is used.
If set to something other than 0, the line count of the article is checked against the
Lines: header of the article (if present) and the artice is rejected if the values
differ by more than this amount. A reasonable setting is 5, which is the standard
maximum signature length plus one (some injection software calculates the Lines:
header before adding the signature). The default value is 0, which tells INN not to
check the Lines: header of incoming articles.
The maximum size of article (headers and body) that will be accepted by the server, in
bytes. A value of 0 allows any size of article. The default value is 1000000
(approximately 1MB). See also localmaxartsize.
The maximum number of incoming NNTP connections innd(8) will accept. The default
value is 50.
If set, this value is prepended to the Path: header of accepted posts (before path-
host) if it doesn't already appear in the Path: header. The main purpose of this
parameter is to configure all news servers within a particular organization to add a
common identity string to the Path: header. The default value is unset.
Whether to enable PGP verification of control messages other than cancel. This is a
boolean value and the default is based on whether configure found pgp or pgpv.
What TCP port innd(8) should listen on. The default value is 119, the standard NNTP
Whether to refuse all articles whose message IDs start with "<cancel.". This message
ID convention is widely followed by spam cancellers, so the vast majority of such
articles will be cancels of spam. This check, if enabled, is done before the history
check and the message ID is not written to the history file. This is a boolean value
and the default is false.
This is a somewhat messy, inefficient, and inexact way of refusing spam cancels. A
much better way is to ask all of your upstream peers to not send to you any articles
with "cyberspam" in the Path: header (usually accomplished by having them mark
"cyberspam" as an alias for your machine in their feed configuration). The filtering
enabled by this parameter is hard-coded; general filtering of message IDs can be done
via the embedded filtering support.
By default, innd(8) records rejected articles in history so that, if offered the same
article again, it can be refused before it is sent. If you wish to disable this
behavior, set this to false. This can cause a substantial increase in the amount of
bandwidth consumed by incoming news if you have several peers and reject a lot of
articles, so be careful with it. Even if this is set to true, INN won't log some
rejected articles to history if there's reason to believe the article might be
accepted if offered by a different peer, so there is usually no reason to set this to
false (although doing so can decrease the size of the history file). This is a bool-
ean value and the default is true.
Which local IP address to bind to for outgoing NNTP sockets (used by innxmit(8) among
other programs). This must be in dotted-quad format (nnn.nnn.nnn.nnn). If set to
"all" or not set, the operating system will choose the source IP address for outgoing
connections. The default value is unset.
Whether to handle control messages (other than cancel) in an external program rather
than internally in innd(8). Enabling this is highly recommended, as INN's internal
control message handling can cause performance problems and behaves very poorly under
heavy load. If you want to enable this, you also must set up a channel feed to con-
trolchan(8) in newsfeeds(5) and ensure that the group "control.cancel" exists on your
server. You may also have to do a few additional things to allow controlchan to work
correctly; see controlchan(8) for the details. This is a boolean value and the
default is false.
Set this to true to enable a simplistic check on all cancel messages, attempting to
verify (by simple header comparison) that the cancel message is from the same person
as the original post. This can't be done if the cancel arrives before the article
does, and is extremely easy to spoof. While this check may once have served a pur-
pose, it's now essentially security via obscurity, commonly avoided by abusers, and
probably not useful. This is a boolean value, and the default is false.
Set this to true if you want to file articles posted to unknown newsgroups (newsgroups
not in the active file) into the "junk" newsgroup rather than rejecting them. This is
sometimes useful for a transit news server that needs to propagate articles in all
newsgroups regardless if they're carried locally. This is a boolean value and the
default is false.
If INN is offered an article by a peer on one channel, it will return deferral
responses (code 436) to all other offers of that article for this many seconds.
(After this long, if the peer that offered the article still hasn't sent it, it will
be accepted from other channels.) The default value is 5 and probably doesn't need to
How long, in seconds, to keep track of message IDs offered on a channel before expir-
ing articles that still haven't been sent. The default value is 10 and probably
doesn't need to be changed.
These parameters affect how articles are stored on disk.
If set to a value other than 0, the claimed size of articles in CNFS cycbuffs is
checked against maxartsize plus this value, and if larger, the CNFS cycbuff is consid-
ered corrupt. This can be useful as a sanity check after a system crash, but be care-
ful using this parameter if you have changed maxartsize recently. The default value
Whether to write out overview data for articles. If set to false, INN will run much
faster, but reading news from the system will be impossible (the server will be for
news transit only). If this option is set to true, ovmethod must also be set. This
is a boolean value and the default is true.
Whether to enable newsgroup-based expiry. If set to false, article expiry is done
based on storage class of storing method. If set to true (and overview information is
available), expiry is done by newsgroup name. This effects the format of expire.ctl.
This is a boolean value and the default is true.
Whether to file all postings to "to.*" groups in the pseudonewsgroup "to". If this is
set to true, the newsgroup "to" must exist in the active file or INN will not start.
This is a boolean value and the default is false.
How many cache slots to reserve for open overview files. If INN is writing overview
files (see enableoverview), ovmethod is set to "tradindexed", and this is set to a
value other than 0, INN will keep around and open that many recently written-to over-
view files in case more articles come in for those newsgroups. Every overview cache
slot consumes two file descriptors, so be careful not to set this value too high. You
may be able to use the "limit" command to see how many open file descriptors your
operating system allows. innd(8) also uses an open file descriptor for each incoming
feed and outgoing channel or batch file, and if it runs out of open file descriptors
it may throttle and stop accepting new news. The default value is 15 (which is proba-
bly way too low if you have a large number of file descriptors available).
This setting is ignored unless ovmethod is set to "tradindexed".
If set, restricts the overview data stored by INN to only the newsgroups matching this
comma-separated list of wildmat expressions. Newsgroups not matching this setting may
not be readable, and if groupbaseexpiry is set to true and the storage method for
these newsgroups does not have self-expire functionality, storing overview data will
fail. The default is unset.
Which overview storage method to use. Currently supported values are "tradindexed",
"buffindexed", and "ovdb". There is no default value; this parameter must be set if
enableoverview is true (the default).
Stores overview data and index information into buffers, which are preconfigured
files defined in buffinedexed.conf. "buffindexed" never consumes additional disk
space beyond that allocated to these buffers.
Uses two files per newsgroup, one containing the overview data and one containing
the index. Fast for readers, but slow to write to.
Stores data into a Berkeley DB database. See the ovdb(5) man page.
If set to true, articles will be stored based on the newsgroup names in the Xref:
header rather than in the Newsgroups: header. This affects what the patterns in stor-
age.conf apply to. The primary interesting effect of setting this to true is to
enable filing of all control messages according to what storage class the control
pseudogroups are filed in rather than according to the newsgroups the control messages
are posted to. This is a boolean value and the default is false.
Whether to create overview data innd(8) internally through libstorage(3). If set to
false, innd create overview data by itself. If set to true, innd does not create. In
the case, you need to run overchan(8) by creating entry in newsfeeds(5). Setting to
true may be useful, if innd can not keep up with incoming feed and the bottle neck is
creating overview data within innd. This is a boolean value and the default is false.
Only used with the tradspool storage method, this says whether to write articles in
wire format. Wire format means storing articles with \r\n at the end of each line and
with periods at the beginning of lines doubled, the article format required by the
NNTP protocol. Articles stored in this format are suitable for sending directly to a
network connection without requiring conversion, and therefore setting this to true
can make the server more efficient. The primary reason not to set this is if you have
old existing software that looks around in the spool and doesn't understand how to
read wire format. Storage methods other than tradspool always store articles in wire
format. This is a boolean value and the default is false.
Whether to act as the slave of another server. If set, INN attempts to duplicate
exactly the article numbering of the server feeding it by looking at the Xref: header
of incoming articles and assigning the same article numbers to articles as was noted
in the Xref: header from the upstream server. The result is that clients should be
able to point at either server interchangeably (using some load balancing scheme, for
example) and see the same internal article numbering. Servers with this parameter set
should generally only have one upstream feed, and should always have nnrpdposthost set
to hand locally posted articles off to the master server. This is a boolean value and
the default is false.
These parameters affect the behavior of INN for readers. Most of them are used by
nnrpd(8). There are some special sets of settings that are broken out separately after
the initial alphabetized list.
Whether to allow use of the NEWNEWS command by clients. This command used to put a
heavy load on the server in older versions of INN, but is now reasonably efficient, at
least if only one newsgroup is specified by the client. This is a boolean value and
the default is true. If you use the access parameter in readers.conf(5), be sure to
read about the way it overrides allownewnews.
Whether to attempt to mmap() articles. Setting this to true will give better perfor-
mance on most systems, but some systems have problems with mmap(). If this is set to
false, articles will be read into memory before being sent to readers. This is a
boolean value and the default is false.
How long (in seconds) a client connection can be idle before it exits. When setting
this parameter, be aware that some newsreaders use the same connection for reading and
posting and don't deal well with the connection timing out while a post is being com-
posed. If the system isn't having a problem with too many long-lived connections, it
may be a good idea to increase this value to 3600 (an hour). The default value is 600
Whether nnrpd(8) should check the existence of an article before listing it as present
in response to an NNTP command. The primary use of this setting is to prevent nnrpd
from returning information about articles which are no longer present on the server
but which still have overview data available. Checking the existence of articles
before returning overview information slows down the overview commands, but reduces
the number of "article is missing" errors seen by the client. This is a boolean value
and the default is true.
Whether to use the Perl hook in nnrpd(8) to authenticate readers. If this is enabled,
normal readers.conf(5) authentication will not be used, and instead the Perl hook will
be called to authenticate connections. This is a boolean value and the default is
Whether to use the Python hook in nnrpd(8) to authenticate readers. If this is
enabled, normal readers.conf(5) authentication will not be used, and instead the
python hook will be called to authenticate connections. This is a boolean value and
the default is false.
Normally, innd(8) will fork a copy of nnrpd(8) for all incoming connections from hosts
not listed in incoming.conf. If this parameter is set to true, those connections will
instead be rejected with a 502 error code. This should be set to true for a transit-
only server that doesn't support readers, if nnrpd is being started out of inetd, or
if nnrpd is run in daemon mode. This is a boolean value and the default is false.
Whether to allow readers to connect even if the server is paused or throttled. This
is only applicable if nnrpd(8) is spawned from innd(8) rather than run out of inetd or
in daemon mode. This is a boolean value and the default is false.
Whether to enable the tracking system for client behavior. Tracked information is
recoreded to pathlog/tracklogs/log-ID. ID is determined by nnrpd's PID and when nnrpd
runs. Currenlty that information includes the messages which tell enabling reader
track and where posted article is tracked. Which user and client, that is recorded,
is determined by nnrpd.track. See nnrpd.track(5) for more information. This is a
boolean value and the default is false.
INN has optional support for generating keyword information automatically from article
body text and putting that information in overview for the use of clients that know to
look for it. The following parameters control that feature.
This may be too slow if you're taking a substantial feed, and probably will not be useful
for the average news reader; enabling this is not recommended unless you have some spe-
cific intention to take advantage of it.
Whether the keyword generation support should be enabled. This is a boolean value and
the default is false.
FIXME: Currently, support for keyword generation is configured into INN semi-randomly
(based on whether configure found the regex library); it should be an option to con-
figure and that option should be mentioned here.
Articles larger than this value in bytes will not have keywords generated for them
(since it would take too long to do so). The default value is 100000 (approximately
Maximum number of bytes allocated for keyword data. If there are more keywords than
will fit, separated by commas, into this many bytes, the rest are discarded. The
default value is 512.
Maximum number of keywords that will be generated for an article. (The keyword gener-
ation code will attempt to discard "noise" words, so the number of keywords actually
writen into the overview will usually be smaller than this even if the maximum number
of keywords is found.) The default value is 250.
These parameters are only used by nnrpd(8), inews(1), and other programs that accept or
generate postings. There are some special sets of settings that are broken out separately
after the initial alphabetized list.
Whether to add an NNTP-Posting-Date: header to all local posts. This is a boolean
value and the default is true.
Whether to add an NNTP-Posting-Host: header to all local posts giving the FQDN or IP
address of the system from which the post was received. This is a boolean value and
the default is true.
Whether to check local postings for the ratio of new to quoted text and reject them if
that ratio is under 50%. Included text is recognized by looking for lines beginning
with ">", "|", or ":". This is a boolean value and the default is false.
The value of the X-Complaints-To: header added to all local posts. The default is the
newsmaster's e-mail address. (If the newsmaster, selected at configure time and
defaulting to "usenet", doesn't contain "@", the address will consist of the newsmas-
ter, a "@", and the value of fromhost.)
Contains a domain used to construct e-mail addresses. The address of the local news
administrator will be given as <user>@fromhost, where <user> is the newsmaster user
set at compile time ("usenet" by default). This setting will also be used by mail-
post(8) to fully qualify addresses and by inews(1) to generate the Sender: header (and
From: header if missing). The value of the FROMHOST environment variable, if set,
overrides this setting. The default is the fully-qualified domain name of the local
The maximum article size (in bytes) for locally posted articles. Articles larger than
this will be rejected. Also see maxartsize. The default value is 1000000 (approxi-
The address to which to send submissions for moderated groups. It is only used if the
moderators file doesn't exist, or if the moderated group to which an article is posted
is not matched by any entry in that file, and takes the same form as an entry in the
moderators file. In most cases, "%firstname.lastname@example.org" is a good value for this
parameter (%s is expanded into a form of the newsgroup name). See moderators(5) for
more details about the syntax. The default is unset. If this parameter isn't set and
an article is posted to a moderated group that does not have a matching entry in the
moderators file, the posting will be rejected with an error.
Whether to generate a Sender: header based on reader authentication. If this parame-
ter is set, a Sender: header will be added to local posts containing the authenticated
user name and the reader's hostname. If this is enabled but authentication does not
return a username, the Sender: header will be removed from all posts even if the
poster includes one. This is a boolean value and the default is false.
If set, nnrpd(8) and rnews(1) will pass all locally posted articles to the specified
host rather than trying to inject them locally. This should always be set if xref-
slave is true. The default value is unset.
The port on the remote server to connect to to post when nnrpdposthost is used. The
default value is 119.
What to put in the Organization: header if it is left blank by the poster. The value
of the ORGANIZATION environment variable, if set, overrides this setting. The default
is unset, which tells INN not to insert an Organization: header.
If true, nnrpd(8) will spool new articles rather than attempting to send them to
innd(8). If false, nnrpd will spool articles only if it receives an error trying to
send them to innd. Setting this to true can be useful if nnrpd must respond as fast
as possible to the client; however, when set, articles will not appear to readers
until they are given to innd. nnrpd won't do this; "rnews -U" must be run periodi-
cally to take the spooled articles and post them. This is a boolean value and the
default is false.
Whether to strip To:, Cc:, and Bcc: headers out of all local posts via nnrpd(8). The
primary purpose of this setting is to prevent abuse of the news server by posting to a
moderated group and including To: or Cc: headers in the post so that the news server
will send the article to arbitrary addresses. INN now protects against this abuse in
other ways provided mta is set to a command that includes %s and honors it, so this is
generally no longer needed. This is a boolean value and the default is false.
nnrpd(8) has support for controlling high-volume posters via an exponential backoff algo-
rithm, as configured by the following parameters.
Exponential posting backoff works as follows: News clients are indexed by IP address (or
username, see backoffauth below). Each time a post is received from an IP address, the
time of posting is stored (along with the previous sleep time, see below). After a con-
figurable number of posts in a configurable period of time, nnrpd(8) will activate posting
backoff and begin to sleep for increasing periods of time before actually posting any-
thing. Posts will still be accepted, but an increasingly reduced rate.
After backoff has been activated, the length of time to sleep is computed based on the
difference in time between the last posting and the current posting. If this difference
is less than backoffpostfast, the new sleep time will be 1 + (previous sleep time * back-
offk). If this difference is less than backoffpostslow but greater than backoffpostfast,
then the new sleep time will equal the previous sleep time. If this difference is greater
than backoffpostslow, the new sleep time is zero and posting backoff is deactivated for
Exponential posting backoff will not be enabled unless backoffdb is set and backoffpost-
fast and backoffpostslow are set to something other than their default values.
Here are the parameters that control exponential posting backoff:
Whether to index posting backoffs by user rather than by source IP address. You must
be using authentication in nnrpd(8) for a value of true to have any meaning. This is
a boolean value and the default is false.
The path to a directory, writeable by the news user, that will contain the backoff
database. There is no default for this parameter; you must provide a path to an
existing and writeable directory to enable exponential backoff.
The amount to multiply the previous sleep time by if the user is still posting too
quickly. A value of 2 will double the sleep time for each excessive post. The
default value is 1.
Postings from the same identity that arrive in less than this amount of time (in sec-
onds) will trigger increasing sleep time in the backoff algorithm. The default value
Postings from the same identity that arrive in greater than this amount of time (in
seconds) will reset the backoff algorithm. Another way to look at this constant is to
realize that posters will be allowed to post 86400/backoffpostslow posts per day. The
default value is 1.
This many postings are allowed before the backoff algorithm is triggered. The default
value is 10000.
These parameters control the behavior of innwatch(8), the program that monitors INN and
informs the news administrator if anything goes wrong with it.
Whether to start innwatch(8) from rc.news. This is a boolean value, and the default
Free space in pathoutgoing, in inndf(8) output units, at which innd(8) will be throt-
tled by innwatch(8), assuming a default innwatch.ctl(5). The default value is 800.
Free space in pathdb, in inndf(8) output units, at which innd(8) will be throttled by
innwatch(8), assuming a default innwatch.ctl(5). The default value is 25000.
Load average times 100 at innd(8) will be restarted by innwatch(8) (undoing a previous
pause or throttle), assuming a default innwatch.ctl(5). The default value is 1000.
Load average times 100 at which innd(8) will be throttled by innwatch(8), assuming a
default innwatch.ctl(5). The default value is 2000.
Load average times 100 at which innd(8) will be paused by innwatch(8), assuming a
default innwatch.ctl(5). The default value is 1500.
How long (in seconds) innwatch(8) will sleep between each check of INN. The default
value is 600.
Free inodes in patharticles at which innd(8) will be throttled by innwatch(8), assum-
ing a default innwatch.ctl(5). The default value is 200.
Free space in patharticles and pathoverview, in inndf(8) output units, at which
innd(8) will be throttled by innwatch(8), assuming a default innwatch.ctl(5). The
default value is 8000.
These parameters control what information INN logs.
Whether to start cnfsstat(8) when innd(8) is started. cnfsstat will log the status of
all CNFS cycbuffs to syslog on a periodic basis. This is a boolean value and the
default is false.
Whether the size of accepted articles (in bytes) should be written to the article log
file. This is useful for flow rate statistics and is recommended. This is a boolean
value and the default is true.
Set this to true to log "ctlinnd cancel" commands to syslog. This is a boolean value
and the default is false.
How many old logs scanlogs(8) keeps. scanlogs(8) is generally run by news.daily(8)
and will archive compressed copies of this many days worth of old logs. The default
value is 3.
Whether the verified name of the remote feeding host should be logged to the article
log for incoming articles rather than the last entry in the Path: header. The only
reason to ever set this to false is due to some interactions with newsfeeds flags; see
newsfeeds(5) for more information. This is a boolean value and the default is true.
Whether the names of the sites to which accepted articles will be sent should be put
into the article log file. This is useful for debugging and statistics and can be
used by newsrequeue(8). This is a boolean value and the default is true.
Whether nnrpd overview statistics should be logged via syslog. This can be useful for
measuring overview performance. This is a boolean value and the default is false.
How many articles to process on an incoming channel before logging the activity. The
default value is 200.
FIXME: This is a rather unintuitive name for this parameter.
Whether to put the storage API token for accepted articles (used by nntplink) in the
article log. This is a boolean value and the default is false.
How frequently (in seconds) innd(8) should write out a status report. The report is
written to pathhttp/inn_status.html. If this is set to 0 or "false", status reporting
is disabled. The default value is 0.
How frequently (in seconds) innd(8) should report performance timings to syslog. If
this is set to 0 or "false", performance timing is disabled. Enabling this is highly
recommended, and innreport(8) can produce a nice summary of the timings. The default
value is 0.
The following parameters can be modified to tune the low-level operation of INN. In gen-
eral, you shouldn't need to modify any of them except possibly rlimitnofile unless the
server is having difficulty.
How many read or write failures until a channel is put to sleep or closed. The
default value is 5.
Each time an attempted write returns EAGAIN or EWOULDBLOCK, innd(8) will wait for an
increasing number of seconds before trying it again. This is the multiplier for the
sleep time. If you're having trouble with channel feeds not keeping up, it may be
good to change this value to 2 or 3, since then when the channel fills INN will try
again in a couple of seconds rather than waiting two minutes. The default value is
The time (in seconds) to wait between noticing inactive channels. The default value
How many seconds to wait before a channel restarts. The default value is 300.
How many article writes between updating the active and history files. The default
value is 10.
How many times to attempt a fork(2) before giving up. The default value is 10.
If set to anything other than 0, all child processes of innd(8) will have this nice(2)
value. This is usually used to give all child processes of innd(8) a lower priority
(higher nice value) so that innd(8) can get the lion's share of the CPU when it needs
it. The default value is 4.
If set to anything greater than 0, all nnrpd(8) processes that receive and process a
NEWNEWS command will nice(2) themselves to this value (giving other nnrpd processes a
higher priority). The default value is 0. Note that this value will be ignored if
set to a lower value than nicennrpd (or nicekids if nnrpd(8) is spawned from innd(8)).
If set to anything greater than 0, all nnrpd(8) processes will nice(1) themselves to
this value. This gives other news processes a higher priority and can help over-
chan(8) keep up with incoming news (if that's the object, be sure overchan(8) isn't
also set to a lower priority via nicekids). The default value is 0, which will cause
nnrpd(8) processes spawned from innd(8) to use the value of nicekids and nnrpd(8) run
as a daemon to use the system default priority. Note that for nnrpd(8) processes
spawned from innd(8), this value will be ignored if set to a value lower than
Wait for this many seconds before noticing inactive channels. Wait for this many sec-
onds before innd processes article when it's paused or the number of channel write
failure exceeds badiocount. The default value is 300.
How long (in seconds) an innd(8) incoming channel may be inactive before innd closes
it. The default value is 3600 (an hour).
The maximum number of file descriptors that innd(8) or innfeed(8) can have open at
once. If innd(8) or innfeed(8) attempts to open more file descriptors than this
value, it is possible the program may throttle or otherwise suffer reduced functional-
ity. The number of open file descriptors is roughly the maximum number of incoming
feeds and outgoing batches for innd(8) and the number of outgoing streams for inn-
feed(8). If this parameter is set to a negative value, the default limit of the oper-
ating system will be used; this will normally be adequate on systems other than
Solaris. Nearly all operating systems have some hard maximum limit beyond which this
value cannot be raised, usually either 128, 256, or 1024. The default value of this
parameter is -1. Setting it to 256 on Solaris systems is highly recommended.
Paths and File Names
Where to store archived news. The default value is pathspool/archive.
The path to where the news articles are stored (for storage methods other than CNFS).
The default value is pathspool/spool.
The path to the news binaries. The default value is pathnews/bin.
The path to the files that handle control messages. If you are using controlchan(8)
(usecontrolchan is set), the code for handling each separate type of control message
is located here. If you are using INN's built-in control message handling, each exe-
cutable file in this directory represents a handler for the Control: message with the
same name as that file. Be very careful what you put in this directory executable, as
it can potentially be a severe security risk. The default value is pathbin/control.
The path to the database files used and updated by the server (currently, active,
active.times, history and its indices, and newsgroups). The default value is path-
The path to the news configuration files. The default value is pathnews/etc.
The path to the Perl, Tcl, and Python filters. The default value is pathbin/filter.
Where any HTML files (such as periodic status reports) are placed. If the news
reports should be available in real-time on the web, the files in this directory
should be served by a web server. The default value is the value of pathlog.
Location where incoming batched news is stored. The default value is pathspool/incom-
Where the news log files are written. The default value is pathnews/log.
The home directory of the news user and usually the root of the news hierarchy. There
is no default; this parameter must be set in inn.conf or INN will refuse to start.
Default location for outgoing feed files. The default value is pathspool/outgoing.
The path to news overview files. The default value is pathspool/overview.
The path to files required while the server is running and run-time state information.
This includes lock files and the sockets for communicating with innd(8). This direc-
tory and the control sockets in it should be protected from unprivileged users other
than the news user. The default value is pathnews/run.
The root of the news spool hierarchy. This used mostly to set the defaults for other
parameters, and to determine the path to the backlog directory for innfeed(8). The
default value is pathnews/spool.
Where INN puts temporary files. For security reasons, this is not the same as the
system temporary files directory (INN creates a lot of temporary files with pre-
dictable names and does not go to particularly great lengths to protect against sym-
link attacks and the like; this is safe provided that normal users can't write into
its temporary directory). It must be on the same partition as pathincoming for
rnews(1) to work correctly. The default value is set at configure time and defaults
Here is a very minimalist example that only sets those parameters that are required.
mta: /usr/lib/sendmail -oi -oem %s
For a more comprehensive example, see the sample inn.conf distributed with INN and
installed as a starting point; it contains all of the default values for reference.
Written by Rich $alz <email@example.com> for InterNetNews and since modified, updated,
and reorganized by innumerable other people.
$Id: inn.conf.5,v 22.214.171.124 2002/09/08 18:08:17 vinocur Exp $
inews(1), innd(8), innwatch(8), nnrpd(8), rnews(1).
Nearly every program in INN uses this file to one degree or another. The above are just
the major and most frequently mentioned ones.
INN 2.3 2002-09-08 INN.CONF(5)