Wenn Du Dich für INN entschieden hast, kannst Du dieses Kapitel überspringen.
Ich werde mich hier auf die Pfadkonventionen beziehen, die das cnews
aus Slackware 2.1 verwendet: /var/lib/news
für die
Konfigurationsfiles, Logfiles und Statusfiles und
/usr/lib/newsbin
für die cnews-Binaries. In anderen
Distributionen wird bzw. wurde das alles gemeinsam in
/usr/lib/news
und /usr/lib/news/bin
oder
/usr/local/lib/news
und /usr/local/lib/news/bin
plaziert.
Ich liste hier einfach mal alle wichtigen Konfigurations-Files auf:
Zunächst das sys
-File welches angibt, welche Newsgroups wohin
exportiert werden sollen:
# /var/lib/news/sys
#
# Achtung: keine ueberfluessigen Leerzeichen einfuegen, das kann zu
# Problemen fuehren
#
# ME: gibt an, welche Newsgroups auf dem eigenen System gehalten werden
# sollen. Dabei sollte es auch moeglich sein einfach "all" zu schreiben. Das
# ist jedoch riskant, denn falls man auch noch uucp verwendet, dann koennten
# automatisch News-Hierarchien angelegt werden, die man nicht haben will.
ME:alt,comp,news,gnu,de,rec,fido,ger,spinnaker,junk
# FidoGate (alle FTN-Netze, die ueber FidoGate angesprochen werden):
# fido.*, ger.*, de.*, comp.*, rec.*, alt.*, gnu.*
fidogate/flokiste.fido.de:\
fido,de,comp,rec,alt,gnu/all:Lf:
Hierfür muß nun noch ein Outbound-Verzeichnis angelegt werden. cnews
erwartet dieses Verzeichnis als
/var/spool/news/out.going/fidogate
. Dieses Verzeichnis
sollte news.news
gehören und die Permissions 775
haben.
Nun muß man angeben, wie die News per FidoGate verarbeitet werden sollen:
# /var/lib/news/batchparms
#
# site size queue builder muncher sender
# ---- ---- ----- ------- ------- ------
/default/ 100000 20 batcher compcun viauux
#
fidogate 250000 200 batcher nocomp viafido
Das bedeutet, daß für fidogate das Skript viafido
zum Transport
verwendet werden soll. Weiterhin sollen maximal 250K in ein Paket
gesteckt werden. Falls man wenig Platz auf der Platte hat, kann man
auch die "size
" runtersetzen (für obiges braucht man nämlich
mindestens 10MB freien Speicher auf /tmp
), nur werden dann
kleinere .pkt
-Files generiert.
Bei neueren Versionen von cnews hat sich das Format dieses Files geändert, so daß da stehen muß:
fidogate u 250000 200 batcher | nocomp | viafido
Das File /usr/lib/newsbin/batch/nocomp
fehlt wohl bei
Slackware 3.0, es muß mit folgendem Inhalt neu erstellt werden:
#!/bin/sh
# /usr/lib/newsbin/batch/nocomp
#
exec cat $*
Das File viafido
existiert nicht, es muß erst erstellt werden:
#! /bin/sh
# /usr/lib/newsbin/batch/viafido
#
# Submit news batch to FIDOGATE's rfc2ftn -w.
#
# The 'exec' cuts down the number of processes active for this simple case.
exec /usr/local/lib/fidogate/rfc2ftn -w Normal -b -n
Letztendlich muß noch die expire-List configuriert werden, welche
angibt, welche Artikel wie schnell gelöscht werden dürfen:
# /var/lib/news/explist
#
# Die History soll 30 Tage gehalten werden. Wenn Artikel ankommen, die aelter
# als 30 Tage sind, werden die gar nicht erst angezeigt, sondern sofort
# geloescht.
/expired/ x 30 -
# Artikel werden mindestens 3, maximal 90 Tage gehalten
/bounds/ x 3-5-90 -
# Alles weitere wird sequentiell von oben(!) abgearbeitet.
junk x 7 -
fido.junk x 7 -
control x 7 -
de.newusers.questions x 8 -
de.newusers x 90 -
de x 14 -
comp.os.linux.announce x 90 -
comp.os.linux x 8 -
fido.2450 x 27 -
fido.r24 x 10 -
fido.ger.linux x 18 -
fido.ger x 14 -
# default: 9 Tage (d.h. alles, was durch obiges noch nicht getroffen wurde)
all x 9 -
Damit sollte das News-System funktionstüchtig sein, allerdings müssen
noch einige Dinge regelmäßig ausgeführt werden, damit es
funktioniert.
Hierzu verwende ein paar Cron-Jobs. Die Crontab für den User
news
sieht dafür wie folgt aus:
# crontab.news
#
SHELL=/bin/sh
MAILTO=news
#
# Crontab entries for news system
#
15 * * * * /bin/date > /tmp/news_cron_ok
# Kurz vor meinen beiden Polls werden die News gesammelt und nach Fido
# exportiert. Zusaetzlich werden sie noch stuendlich exportiert.
27 8 * * * /usr/local/lib/fidogate/run-batch
27 20 * * * /usr/local/lib/fidogate/run-batch
13 * * * * /usr/local/lib/fidogate/run-batch
# Die Artikel sollen regelmaessig fuer alle User des Systems lesbar gemacht
# werden (danach kann man sie auch noch canceln und wenn noch kein run-batch
# ausgefuehrt wurde, wird der gecancelte Artikel auch nicht einmal
# exportiert): [das */5 bedeutet, dass alle 5 Miunten newsrun gestarte
# werden soll. Fuer naehere Informationen siehe man 5 crontab]
*/5 * * * * /usr/lib/newsbin/input/newsrun
# Kontrollieren.... um 21:18
18 21 * * * /usr/lib/newsbin/maint/newsdaily
# Aufraeumen...
24 8 * * * /usr/lib/newsbin/expire/doexpire
24 20 * * * /usr/lib/newsbin/expire/doexpire
Dabei ist run-batch
ein kleines Shell-Script, welches zuerst
newsrun
und dann sendbatches
aufruft:
#!/bin/sh
# /usr/local/lib/fidogate/run-batch
#
# Call newsrun, sendbatches
#
/usr/lib/newsbin/input/newsrun
/usr/lib/newsbin/batch/sendbatches
Bei Slackware 3.0 wird bei jedem Aufruf von sendbatches
die
UUCP-Queue überprüft, wobei eine Fehlermeldung ausgegeben wird, weil
das System fidogate
nicht als UUCP-System existiert. Um dieses
Problem zu beheben, muß das Script queulen
wie folgt geändert
werden:
#!/bin/sh
# Find size of current queue of news outbound to $1. Taylor version.
# =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
. ${NEWSCONFIG-/var/lib/news/config}
PATH=$NEWSCTL/bin:$NEWSBIN:$NEWSPATH ; export PATH
umask $NEWSUMASK
if test "$1" = "fidogate"
then
echo -e "\t0"
exit 0
else
uustat -s $1 -c rnews | wc -l
fi
Nun müssen die Newsgroups noch in das News-System eingetragen
werden. Hierzu verwendet man das Programm
/usr/lib/newsbin/maint/addgroup
, welches man mit dem
Namen der Newsgroup sowie dem Parameter y
aufruft, z.B.:
/usr/lib/newsbin/maint/addgroup fido.ger.linux yDamit wird nun die Newsgroup
fido.ger.linux
(entspricht bei mir
der Fido-Area LINUX.GER
) eingerichtet. Dies muß man nun mit allen
gewünschten Newsgroups machen. Weiterhin sollte man auch noch die
beiden Newsgroups fido.junk
und junk
anlegen, welche News
aufnehmen, die in keine andere Newsgroup einsortiert werden
können. Wenn Fido-Echomail in eine Area gehört, die in
/usr/local/lib/fidogate/areas
nicht aufgeführt ist, so
wandert diese in fido.junk
. Wenn die Area in
fidogate/areas
eingetragen ist, aber vergessen wurde, die
entsprechende Newsgroup mit addgroup anzulegen, dann wandert der
Artikel nach junk
. Man sollte diese Newsgroup als
Systemverwalter auch subscriben, damit man fehlende Newsgroup-Einträge
bemerkt und eintragen kann. Um Artikel canceln zu können, benötigt
man übrigens noch die Newsgroup control
, die man auch mittels
addgroup
anlegen sollte.
Falls noch Permission-Probleme auftreten können die auch in einem Bug
von relaynews
begründet sein, denn dort wird nach einem su
weiterhin die alte User-ID und Group-ID verwandt. Das läßt sich aber
durch folgenden Patch beheben:
--- org/relaynews.c Tue Mar 17 08:42:42 1992
+++ relaynews.c Sun Jan 30 13:48:34 1994
@@ -201,7 +201,7 @@
else
newsuid = geteuid(), newsgid = getegid();
if (setgid(newsgid) < 0 || setuid(newsuid) < 0 ||
- getgid() != newsgid || getuid() != newsuid) {
+ getegid() != newsgid || geteuid() != newsuid) {
if (getenv("NEWSPERMS") != 0)
error("recursive loop setting ids", "");
/*