Verder Terug Inhoud

3. Majordomo

Majordomo is, natuurlijk, het stukje code waar dit document om draait; het bestaat uit een aantal Perl scripts met als enig doel het onderhouden van mailing lists.

3.1 De installatie voorbereiden

Download de gegzipte bron distributie van de laatste versie van Majordomo van http://www.greatcircle.com/majordomo/ en pak het uit


[jarchie@kes jarchie]$ zcat majordomo-1.94.4.tar.Z | tar xvf -

Dit maakt een subdirectory aan met alle files die nodig zijn om Majordomo te installeren; deze directory kan niet dezelfde zijn als de directory waar Majordomo wordt geinstalleerd.

Majordomo moet draaien onder een bepaald UID en GID dus als je een van de scripts draait, draaien ze onder Majordomo's UID Dus, is het nodig om te beslissen onder welk UID of GID Majordomo gaat draaien. Ook moet Majordomo een Sendmail vertrouwde gebruiker zijn. (Zie Gevolgen van Majordomo een vertrouwde gebruiker maken)

Check de /etc/passwd en /etc/group files om een UID en GID te vinden dat nog niet is ingenomen. Bijvoorbeeld, een UID van 16 en een GID van 16 is gekozen. Je hebt de lokatie van de Majordomo script beslist; in deze HOWTO de directory /usr/local/majordomo-1.94.4/. Als je shadow passwords gebruik moet je deze regel toevoegen aan /etc/passwd.

majordomo:x:16:16:Majordomo List Manager:/usr/local/majordomo-1.9.4:
En zo'n soort regel aan je /etc/shadow.
majordomo:*:10883:0:88888:7:::
Gebruik de andere entries in deze files als een gids van wat je exact moet invullen. Dit zijn alleen de waarden voor mijn systeem. Als je geen shadow passwords gebruikt is alleen een entry in de /etc/passwd file nodig.

Om de Majordomo groep toe te voegen, voeg de volgende regel

majordomo:x:16:jarchie,majordomo
toe aan je /etc/group file. Dit geeft je toegang tot de Majordomo files die groep schrijf baar zijn. Ook, kun je majordomo aan de deamon groep toevoegen om het een vertrouwde gebruiker te maken (Zie Sendmail Vertrouwde gebruikers) Om dit te doen verander de regel die er zo uitziet
daemon:x:2:root,bin,daemon
naar
daemon:x:2:root,bin,daemon,majordomo

3.2 De installatie files aanpassen

De Makefile houdt alle informatie in die nodig is om Majordomo te installeren; het is meestal onnodig om regels aan te passen in Makefile die te maken hebben met systeem specifieke instellingen zodat Majordomo goed op je systeem installeert. De meest standaard instellingen zijn goed; Hoewel, de volgende instellingen, moeten worden veranderd.


[jarchie@kes majordomo-1.94.4]$ vi Makefile

De instellingen
PERL = /bin/perl
CC = cc
W_HOME = /usr/test/majordomo-$(VERSION)
MAN = $(W_HOME)/man
W_USER = 123
W_GROUP = 45
moeten worden veranderd naar iets meer geschikt voor je systeem. Bijvoorbeeld, in mijn instellingen, zijn de waarden veranderd naar
PERL = /usr/bin/perl
CC = gcc
W_HOME = /usr/local/majordomo-1.94.4
MAN = /usr/man
W_USER = 16
W_GROUP = 16
Ook de majordomo.cf file moet worden aangemaakt. Een makkelijke manier om dit te doen is door de meegeleverde sample.cf te copieëren naar majordomo.cf en deze editten.

[jarchie@kes majordomo-1.94.4]$ cp sample.cf majordomo.cf
[jarchie@kes majordomo-1.94.4]$ vi majordomo.cf

Weer, de meeste instellingen zijn standaard goed, maar de volgende regels moet worden veranderd voor je systeem van
$whereami = "example.com";
$whoami = "Majordomo\@$whereami";
$whoami_owner = "Majordomo-Owner\@$whereami";
     $homedir = "/usr/test/majordomo";
$digest_work_dir = "/usr/local/mail/digest";
$sendmail_command = "/usr/lib/sendmail";
naar iets als dit
$whereami = "kes.emeraldis.com";
$whoami = "majordomo\@$whereami";
$whoami_owner = "majordomo-owner\@$whereami";
     $homedir = "/usr/local/majordomo-1.94.4";
$digest_work_dir = "/usr/local/majordomo-1.94.4/digest";
$sendmail_command = "/usr/sbin/sendmail";
$whoami en $whoami_owner moeten niet worden veranderd om Majordomo te laten werken, ik heb ze veranderd omdat ik het niet leuk vindt om hoofdletters te typen. $digest_work_dir is een tijdelijke directory waar files moet worden geplaatst. Als je niet van plan ven verkorte lijsten te gebruiken, moet je je niet druk maken over deze optie. $whereami, $homedir, and $sendmail_command moet worden veranderd naar de werkelijke waarden van je systeem. Anders dan de Makefile, deze opties kunnen altijd worden veranderd nadat Majordomo is geinstalleerd door majordomo.cf aan te passen in de directory waar Majordomo is geinstalleerd. (De configuratie file is simpel gecopieeerd tijdens het installeren.)

3.3 Majordomo Installeren

De volgende stap is de Majordomo wrapper compileren. De wrapper is het enige Majordomo component dat moet worden gecompileerd omdat de rest alleen een collectie van perl scripts zin en moeten daarom niet worden compileerd.

[jarchie@kes majordomo-1.94.4]$ make wrapper
Om de Majordomo files te installeren, voer je de volgende commando's uit
[jarchie@kes majordomo-1.94.4]# make install
[jarchie@kes majordomo-1.94.4]# make install-wrapper
Het eerste commando kan worden gedaan als de Majordomo gebruiker, maar de twee moet gedaan worden als root zodat het installatie script de wrapper SUID kan maken. (Sinds, majordomo is gecreerd zonder login shell of paswoord en je wilt het eerste commando als majordomo doen moet je eerst inloggen en dan su majordomo als root doen om majordomo te worden.)

3.4 De Majordomo Aliases maken

Sendmial aliases moet worden aan gemaakt voor Majordomo zodat commando's gezonden naar Majordomo kunnen worden verwerkt door Majordomo en de majordomo eigenaar, zodat de mensen je kunnen E-mail met het standaard adres owner-majordomo. Voeg de volgende regels toe aan je aliases file. (Zie Aliases)

majordomo:       "|/usr/local/majordomo-1.94.4/wrapper majordomo"
owner-majordomo: jarchie
majordomo-owner: jarchie

3.5 De configuratie testen

Als een gewone gebruiker (niet als majordomo of als root), doe je


[jarchie@kes jarchie]$ /usr/local/majordomo-1.94.4/wrapper config-test

Dit detecteert de meeste problemen in de Majordomo installatie.

3.6 Lijsten aanmaken

Om een lijst te maken, moet je een file maken met de naam van de lijst in de Majordomo lijst directory. Bijvoorbeeld, om een lijst te maken genoemd test, moet je een file test maken als gebruiker Majordomo


[root@kes /]# su majordomo
[majordomo@kes /]$ touch /usr/local/majordomo-1.94.4/lists/test

en voeg de gerelateerd alias toe
test:          :include:/usr/local/majordomo-1.94.4/lists/test
owner-test:    jarchie
test-request:  "|/usr/local/majordomo-1.94.4/wrapper request-answer test"
test-approval: jarchie

3.7 Verder testen van de configuratie

Nu testen we de operatie van de lijst door het lists commando aan majordomo te geven.


[jarchie@kes jarchie]$ echo lists | mail majordomo

Het zou maar een seconde voor majordomo moeten duren om antwoord te geven met een bericht dat alle lijsten weergeeft die nu ingesteld zijn. Daarna probeer je het help commando.

[jarchie@kes jarchie]$ echo help | mail majordomo

Majordomo zou moeten antwoorden met een lijst van alle commando's die Majordomo accepteert. Het zou een goed idee zijn als je dit bericht bewaard voor later.

Om te zien of de aliases goed werken, probeer je zelf intescrijven en weer uitte schrijven bij een lijst.


[jarchie@kes jarchie]$ echo subscribe test | mail majordomo

Je ontvangt een E-mail message met instructies hoe je je echt moet inschrijven en een brief dat je commando is gelukt. Nadat je je goedkeuring het opgestuurd, moet Majordomo twee brieven terug zenden-- een dat je inschrijf aanvraag is geaccepteerd en een welkoms brief. De eigenaar van de lijst krijgt ook een e-mail met daarin dat jij je hebt ingeschreven.

Om je inschrijving op te heffen, zendt een unsubscribe commando


[jarchie@kes jarchie]$ echo unsubscribe test | mail majordomo

Je krijgt een brief terug met daarin dat je commando succesvol was.

3.8 Beter Aliases maken

Voor sommige lijsten, is het misschien goed dat Majordomo ze eerst nakijkt voordat ze de echte lijst bereiken. Bijvoorbeeld, Majordomo heeft een optie om je berichten automatisch te filteren op inhoud (zoals taboo woorden), of Majordomo kan mensen pakken die commando's naar de lijsten proberen te zenden. Voor deze opties, is het nodig om een betere set van aliases te gebruiken zoals

test:        "|/usr/local/majordomo-1.94.4/wrapper resend -l test test-list"
test-list:   :include:/usr/local/majordomo-1.94.4/lists/test
owner-test:  jarchie
test-owner:  jarchie
test-request:  "|/usr/local/majordomo-1.94.4/wrapper majordomo -l test"
De laatste invoer staat toe dat iemand simpel een bericht naar test-request@kes.emeraldis.com zend met de text subscribe dan een bericht zenden naar majordomo@kes.emeraldis.com met de text subscribe test.
Verder Terug Inhoud