Inhalt

12. cnews-Konfiguration

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 y
Damit 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", "");
                /*


Inhalt