Folgende Dateien sind wichtig für die Arbeit und Konfiguration von inn
und suck
, /etc/hosts
, /etc/news/inn.conf
, /etc/news/hosts.nntp
, /etc/news/nnrp.access
, /etc/news/newsfeeds
, /etc/news/expire.ctl
, /etc/suck/get-news.conf
, /etc/suck/sucknewsrc
, /var/lib/news/active
Dies sollte schon bei der Installation geschehen sein; ansonsten geht es wie folgt:
root: useradd -u 9 -g news -d /home/news -s /bin/bash -m news
Die numerische BenutzerID (hier 9) darf nur einmal vorkommen; deshalb sollte man zunächst in der Datei /etc/passwd
nachschauen und eventuell eine andere auswählen, die aber kleiner als 99 sein sollte./etc/aliases
folgende Einträge einfügen:
bin: root
news: root
usenet: root
newsmaster: root
damit die Mais, die inn
dem newsmaster
schickt bei root
ankommen.sendmail
die Änderungen noch mitteilen und verarbeiten lassen:
root: newaliases
organization: [Firmennahme o.ä.]
server: localhost
Diese Datei enthält nur einen einzigen Eintrag
localhost
*:: -no- : -no- :!
(none):ReadPost:::*
localhost:ReadPost:::*
/remember/:14
*:A:4:10:10
junk:A:1:1:2
control:A:1:1:2
*.test:A:1:1:1
ME:*::
OVERVIEW!:*:Tc,WO:/usr/lib/news/bin/overchan
newsserv/[Name des Newsservers]:*:Ap,Tf,Wnm:newsserv
/var/lib/news/active
sehr lang ist, hier ein kurzer Ausschnitt:
control 0000000000 0000000001 y
junk 0000000000 0000000001 y
local.general 0000000000 0000000001 y
local.test 0000000001 0000000002 y
to 0000000000 0000000001 y
de.comp.os.linux.x 0000002735 0000001784 y
de.comp.os.linux.misc 0000014074 0000007994 y
de.comp.os.linux.networking 0000004226 0000003514 y
hhu.forum 0000000320 0000000265 y
hhu.linux 0000000016 0000000016 y
hhu.modem 0000000087 0000000083 y
hhu.bibliothek 0000000003 0000000004 y
de.comp.text.tex 0000002821 0000002428 y
de.comp.lang.perl 0000001178 0000000947 y
hhu.wohnheime 0000000135 0000000122 y
hhu.test 0000000033 0000000034 y
de.alt.comp.kde 0000000581 0000000211 y
In active
ist der aktuelle Downloadstand der Newsgroups festgehalten. Es sollten keine unvorsichtigen Änderungen vorgenommen werden, da die Syntax sehr empfindlich ist./usr/lib/news/bin/getlist
-- so muß man vorgehen:
root: pon
root: /usr/lib/news/bin/getlist -h newsserv active > /var/lib/news/active.raw
root: cd /var/lib/news
root: sed 's/ [0-9* [0-9] / 0000000000 0000000001 /' active.raw > active
to 0000000000 0000000001 y
junk 0000000000 0000000001 y
control 0000000000 0000000001 y
root: chown news.news active
root: chmod 644 active
inn
Zugang zum Verzeichnis /var/run
benötigt:
root: chown root.root /var/run
/var/spool/news
nach den folgenden Verzeichnissen suchen: in.coming
, news.archive
, out.going
und over.view
. Sollte sie nicht vorhande sein, so muß man sie erzeugen:
root: su news -c "mkdir ..."
root: chwon -R news.news /usr/lib/news*
root: chwon -R news.news /var/lib/news*
root: chwon -R news.news /var/spool/news*
root: su news -c /usr/lib/news/bin/makehistory -o"
root: su news -c "/usr/lib/news/bin/news.daily"
/etc/inetd.conf
muß unbeding die folgende Zeile mit einem "Hash" #
auskommentiert werden:
nntp strem tcp nowait root /usr/sbin/tcpd in.nntpd
SPANNUNG! Ob es wohl funktioniert? Ein erster Test kann lokal auf dem eigenen Rechner durchgeführt werden:
root: /usr/lob/news/bin/rc.news
Es sollte erscheinen:
Starting innd
Dann kommt:
root: telnet localhost 119
Trying 127.0.0.1....
Connected to localhost
Escape charakter is ']'
200 EigenerRechner InterNetNews NNRP server INN Version Datum ready (posting ok).
Kein Prompt.
Mit quit
geht's wieder zum gewohnten Prompt!
Wenn das geklappt hat: HERZLICHEN GLÜCKWUNSCH! Die Wahrscheinlichkeit, daß der inn
auch sonst richtig arbeitet ist sehr hoch.
Sollte es nicht funktioniert haben: Herzliches Beileid, denn jetzt heißt es Fehlersuche: Nachschauen, ob root
eine Mail bekommen hat, die Konfiguration nachprüfen (v.a. Besitzer und Rechte kontrollieren); sehr hilfreich kann auch ein Aufruf von /usr/lib/news/bin/inncheck
sein.
Damit der inn
bzw. sein Dämon (innd
) beim Hochfahren des Rechners gestartet werden, muß bei den meisten Distributionen nichts mehr eingerichtet werden. Andernfalls kann man, je nach Distribution, entweder in /etc/rc.d/rc.local
folgenden Abschnitt einfügen:
# start inn
if [ -x /usr/lib/news/bin/rc.news ] then
/bin/sh /usr/lib/news/bin/rc.news
fi
oder man erzeugt in /etc/rc.boot
ein File mit Namen inn
, welches den oben gezeigten Inhalt hat. Ein korrekterer Weg wäre jedoch, in /etc/rc2.d
einen Link names S50inn
auf /etc/init.d/inn
zu setzen, das folgenden Inhalt hat;
#!/bin/sh
# Start/stop the news server.
test -f /usr/sbin/innd || exit 0
case "$1" in
start)
echo "Starting news server: innd"
start-stop-daemon --quiet --start --user root \
--pidfile /var/run/innd/innd.pid --startas /etc/news/boot |
sed -e '/Starting innd./d' -e 's/^/innd: boot: /' &
sleep 2
;;
stop)
echo "Stopping news server: innd"
if [ -f /var/run/innd/innwatch.pid ]
then
start-stop-daemon --quiet --stop \
--pidfile /var/run/innd/innwatch.pid
fi
start-stop-daemon --quiet --stop \
--pidfile /var/run/innd/innd.pid --exec /usr/sbin/innd
;;
*) echo "Usage: /etc/init.d/inn start|stop"; exit 1 ;;
esac
exit 0
rc2.d
gilt für den Runlevel 2; wenn das System auch in anderen Runleveln läuft (z.B. Runlevel 3 bei Einsatz des xdm
), so muß auch im entsprechenden rc[n].d
ein Link S20inn
vorhanden sein. Sicherheitshalber sollte man dies jedem Runlevel zuordnen. Eine Außnahme stellen jedoch die (meist als solche verwendeten) Runlevel 0 (halt), 1 (Single-User) und 6 (reboot) dar; hier lautet der Link K50inn
, hat aber das gleiche Ziel. Zur Behandlung der Runlevel sollte unbedingt die Dokumentation der jeweiligen Distribution beachtet werden!
Damit die News, welche auf den Rechner geschaufelt und hier geschrieben werden, einer regelmäßigen Wartung unterzogen werden, engagieren wir einen kleinen Helfer, der diese Arbeiten erledigt. Wann er was machen soll, wird in /etc/crontab
festgelegt.
crontab
:
# /etc/crontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
42 12 * * * root run-parts /etc/cron.daily
47 12 * * 7 root run-parts /etc/cron.weekly
52 12 1 * * root run-parts /etc/cron.monthly
/etc/cron.daily
findet man die Scripts, die täglich ausgeführt werden sollen. Für inn
steht dann in /etc/cron.daily/inn
:
#!/bin/sh
su news -c /usr/lib/news/bin/news.daily
Zu beachten sind hier: /etc/suck/get-news.conf
, /etc/suck/sucknewsrc
server: localhost
remoteserver: [Newsserver]
outgoingfile: newsserv
#userid:
#password:
sedcmd: /^NNTP-Posting-Host:\|^Xref:/d
#comp.os.linux.announce -1
#comp.security.announce -1
#gnu.announce -1
#news.announce.newusers -1
#news.newusers.questions -1
de.comp.os.linux.x 16314
de.comp.os.linux.misc 67222
de.comp.os.linux.networking 25000
hhu.forum 4588
hhu.linux 225
hhu.modem 2160
hhu.bibliothek 130
#hhu.test 1383
de.comp.text.tex 13466
de.comp.lang.perl 6338
hhu.wohnheime 278
de.alt.comp.kde 653
Hier wird suck
mitgeteilt, welche Gruppen es holen soll. Bei der ersten Einrichtung einer Gruppe gibt man als Zahl z.B. -20 an. Das bedeutet, suck
soll die von diesem Zeitpunkt an 20 neuesten Nachrichten der Gruppe holen. Der Wert wird dann bei jedem Polling aktualisiert.
Der entsprechende Befehl lautet
root: get-news
Dies wiederum ist ein Link auf /usr/sbin/get-news.inn
. suck
übernimmt dann sowohl das Saugen neuer News und das Posten der Artikel, die lokal verfasst wurden. Dabei werden aber nur Artikel an Newsserver
weitergeleitet, die nicht von ihm stammen.