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.
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
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.)
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.)
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
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.
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
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.
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
.