<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">

<article>

<artheader>
<title>Majordomo en MajorCool HOWTO</title>

<author>
<firstname>John</firstname> <surname>Archie</surname>
<affiliation>
<address><email>johnarchie@emeraldis.com</email></address>
</affiliation>
</author>

<author>
<firstname>Vertaald door:Ellen</firstname>
<surname>Bokhorst</surname>
<affiliation>
<address><email>bokkie@nl.linux.org</email></address>
</affiliation>
</author>

<edition>1.01</edition>
<pubdate>15 November 2000</pubdate>
<abstract>
<para>
Dit document is bedoeld om een gebruiker bij een installatie van 
Majordomo Mailing List Software en MajorCool te begeleiden. MajorCool is 
een utility voor het beheren van Majordomo lijsten via een CGI-script;
veel mensen die niet bekend zijn met de tekstge&ouml;ri&euml;nteerde
aard van Majordomo geven de voorkeur aan de wat gebruikersvriendelijke
op het web gebaseerde interface van MajorCool.
</para>
</abstract>
</artheader>

<sect1>
<title>Introductie</title>
<para>
Deze HOWTO is in verscheidene secties onderverdeeld. Het deel over Sendmail
bestaat uit een algemene bespreking over Majordomo en hoe Majordomo
aansluit op Sendmail, als ook de diverse manieren waarop Majordomo kan worden
opgezet en de consequenties van dergelijke besluiten. Daarbij afgestoken
bestaat de rest van de HOWTO uit een tutorial die een gebruiker door een
gewoon installatieproces van Majordomo leidt. 
Ik raad je aan eerst het algemene installatieproces, beschreven in de secties
na Sendmail, door te nemen, waarbij zonodig naar de passende delen van de 
Sendmail sectie wordt verwezen
(de van toepassing zijnde secties worden vermeld op de
van toepassing zijnde lokaties). Lees vervolgens het deel over Sendmail
zorgvuldig door en besluit daarna hoe precies je systeem te configureren.
Tenslotte, is in een lijst met termen voorzien voor de wat diepzinniger
termen.
</para>

<para>
Mochten de offici&euml;le sites voor het downloaden van de software vermeld in
dit document down zijn, dan zijn de tarballs ook te vinden op <ulink url="http://philosophy.lander.edu/~jarchie/majordomo/">mijn website</ulink>.
</para>

<sect2>
<title>Krediet</title>

<para>
Dank gaat uit naar een paar mensen (in alfabetische volgorde) voor hun
hulp van onschatbare waarde.
</para>

<itemizedlist>
<listitem>
<para>
Lee Archie voor het proeflezen
</para>
</listitem>

<listitem>
<para>
James Bruce en Bill Poston voor de kans om mijn eerste permanente machine
met Majordomo op te zetten
</para>
</listitem>

<listitem>
<para>
Joseph D. Sloan voor het lezen van het deel dat gaat over Sendmail en
het geven van behulpzame suggesties
</para>
</listitem>

<listitem>
<para>
Aanvulling van de vertaler: Met dank aan Reggy Ekkebus voor het vertalen
van versie 1.10, dd 10 november 1999 van dit document naar het Nederlands.
Dit document is opnieuw vertaald vanwege de omzetting van linuxdoc naar
DocBook en de uitgave van een nieuwe versie.
</para>
</listitem>
</itemizedlist>
</sect2>

<sect2>
<title>Referenties</title>

<para>
Alhoewel ik heb getracht deze HOWTO zo compleet mogelijk te maken, is het
altijd een goed idee meer dan &eacute;&eacute;n bron te bekijken. Hieronder
tref je een lijst aan met de bronnen die ik behulpzaam vond bij het voor
de eerste keer proberen te configureren van Majordomo.
</para>

<para>
Boeken:
</para>

<itemizedlist>
<listitem>
<para>
Bryan Costales with Eric Allman, <emphasis>sendmail</emphasis>.  Cambridge: O'Reilly, 1997.
</para>
</listitem>

<listitem>
<para>
Alan Schwartz, <emphasis>Managing Mailing Lists</emphasis>.  Cambridge: O'Reilly, 1998.
</para>
</listitem>
</itemizedlist>

<para>
Vrije bronnen:
</para>

<itemizedlist>
<listitem>
<para>
de documentatie die met Sendmail wordt geleverd, vooral
<filename>README.cf</filename>
</para>
</listitem>

<listitem>
<para>
de documentatie die met Majordomo wordt geleverd, met name
<filename>INSTALL</filename> en <filename>NEWLIST</filename>
</para>
</listitem>

<listitem>
<para>
het <ulink url="http://www.hpc.uh.edu/majordomo-users/"><literal>Majordomo-Users</literal></ulink> discussielijstarchief.
</para>
</listitem>

<listitem>
<para>
de documentatie die bij MajorCool wordt geleverd.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>

<sect1>
<title>Sendmail</title>

<para>
Aangezien Majordomo verantwoordelijk is voor het beheren van E-maillijsten,
is het in belangrijke mate afhankelijk van een MTA zoals Sendmail. 
Er bestaan nog andere MTA's,
zoals Smail en Qmail; echter Sendmail is de oudste en meest algemene.
Deze sectie introduceert de lezer in die gebieden die bruikbaar of nodig
zijn voor de configuratie bij het gebruik van Majordomo.
</para>

<sect2 id="sec-aliases">
<title>Aliassen</title>

<para>
Het aliassenbestand van Sendmail (gewoonlijk <filename>/etc/aliases</filename>)
wordt gebruikt voor het maken van aliassen voor E-mailadressen. Zodra
Majordomo is ge&iuml;nstalleerd bijvoorbeeld, komt er in het bestand aliases
gewoonlijk een regel voor als:

<programlisting>
majordomo-owner:	jarchie
</programlisting>

Deze regel betekent dat alle mail geadresseerd aan 
<literal>majordomo-owner@host.com</literal> in werkelijkheid zal worden
gestuurd naar <literal>jarchie@host.com</literal>. Het is niet nodig
<literal>@host.com</literal> aan <literal>jarchie</literal> toe te voegen,
omdat beide gebruikers zich op dezelfde host bevinden. Als het gewenst zou
zijn om het bericht naar een andere gebruiker op een andere host door te
sturen, dan zou men het deel <literal>@host.com</literal> moeten toevoegen.
</para>

<para>
Een ander type regel in het bestand aliases staat toe dat E-mail naar
meerdere adressen opgesomd in een bestand kan worden doorgestuurd:

<screen>
testlist:		:include:/usr/local/majordomo-1.94.5/lists/testlist
</screen>

Deze regel geeft aan dat elk bericht gestuurd naar 
<literal>testlist@host.com</literal> zal worden doorgestuurd naar alle
adressen die zijn opgesomd in het bestand 
<filename>/usr/local/majordomo-1.94.5/lists/testlist</filename>.  
Het bestand <filename>testlist</filename> zou er zo uit kunnen zien:

<screen>
johnarchie@emeraldis.com
srobirds@yahoo.com
acreswell@geocities.com
</screen>

Majordomo kan door gebruik te maken van deze feature adressen aan een lijst
toevoegen of van een lijst verwijderen. Wanneer een 
<literal>subscribe</literal> verzoek wordt verwerkt, wordt het E-mailadres
van de gebruiker toegevoegd aan het bestand <filename>testlist</filename>;
wanneer een <literal>unsubscribe</literal> verzoek wordt verwerkt, wordt
het E-mailadres van de gebruiker verwijderd uit het bestand 
<filename>testlist</filename>.  Men kan tevens adressen handmatig toevoegen
of verwijderen door simpelweg het bestand te bewerken met een teksteditor
zoals <command>vi</command>.
</para>

<para>
Aangezien Majordomo opdrachten moet kunnen verwerken die er via E-mail
naartoe zijn gestuurd, moet Sendmail het Majordomo programma kunnen
uitvoeren en er het bericht aan door kunnen geven. Dit wordt bewerkstelligd
door een ander type regel toe te voegen aan het bestand
<filename>aliases</filename>:

<screen>
majordomo:		"|/usr/local/majordomo-1.94.5/wrapper majordomo"
</screen>

Het programma <filename>/usr/local/majordomo-1.94.5/wrapper</filename> is een
wrapper (SUID <literal>majordomo</literal> en SGID <literal>majordomo</literal> of <literal>daemon</literal> afhankelijk van de configuratie) 
dat het Majordomo programma uitvoert. De aanhalingstekens rondom het tweede
deel van de alias worden gebruikt om Sendmail aan te geven dat dit deel van de
regel uit &eacute;&eacute;n statement bestaat; 
de aanhalingstekens zouden niet nodig zijn als er geen spatie tussen
<literal>wrapper</literal> en <literal>majordomo</literal> zou staan.  
Het <literal>|</literal>-teken staat bekend als een "pipe"; het wordt
gebruikt om Sendmail aan te geven de E-mail aan de wrapper via de 
standaardinvoer naar de wrapper te sturen. 
(Aangezien het enige dat de wrapper hier doet het aanroepen van
<command>majordomo</command> is, wordt de E-mail in feite doorgestuurd naar 
Majordomo.)  De wrapper accepteert &eacute;&eacute;n parameter, namelijk
de parameter van het programma dat het verondersteld wordt uit te voeren.
(Parameters na de eerste zullen worden doorgegeven aan het programa dat de
wrapper uitvoert.) 
Om beveiligingsredenen, voert de wrapper alleen programma's uit die zijn
de vinden in de Majordomo directory, 
<filename>/usr/local/majordomo-1.94.5/</filename>.  Deze beperking
verhindert een programmeur de wrapper te gebruiken programma's uit
te voeren die geen Majordomo privileges zouden moeten hebben. 

(Bijvoorbeeld, <command>wrapper /bin/vi</command> zou een gebruiker toestaan
elk Majordomo configuratiebestand te bewerken.) Wanneer een bericht naar
<literal>majordomo@host.com</literal> is gezonden, start Sendmail de wrapper,
die op zijn beurt, <command>majordomo</command> opstart, en Sendmail stuurt
het bericht naar het <command>majordomo</command> script via de
standaardinvoer.  Majordomo extraheert de opdrachten dan uit het bericht
en reageert dienovereenkomstig.
</para>

</sect2>

<sect2>
<title>Bewerken van <filename>sendmail.cf</filename></title>

<para>
Door zijn geheimzinnige syntax is <filename>sendmail.cf</filename> misschien
wel het meest beangstigend van alle configuratiebestanden. Bij de installatie
van <literal>majordomo</literal>, is het niet strict noodzakelijk om 
<filename>sendmail.cf</filename> te bewerken; echter een paar features zijn
buitengewoon handig. Tenzij belangrijke wijzigingen moeten worden aangebracht 
aan <filename>sendmail.cf</filename> (wat Majordomo gelukkig niet vereist), 
is het bewerken van het bestand niet zo moeilijk. Het enige dat nodig is, is
het toevoegen van extra regels aan het bestand.
</para>

<sect3>
<title>Een ander aliases bestand</title>

<para>
Vaak is het een goed idee om een apart bestand voor de Majordomo aliassen,
zoals <filename>/usr/local/majordomo-1.94.5/majordomo.aliases</filename>, aan
te maken.  Dit kan nogal makkelijk worden gedaan door een regel toe te voegen
aan het einde van het bestand <filename>sendmail.cf</filename>

<screen>
OA/usr/local/majordomo-1.94.5/majordomo.aliases
</screen>

Voor een <filename>/usr/local/majordomo-1.94.5/majordomo.aliases</filename>, 
moet Sendmail een database (<filename>/usr/local/majordomo-1.94.5/majordomo.aliases.db</filename>) kunnen genereren. De makkelijkste manier om dit te
bewerkstelligen is een door Sendmail te overschrijven lege database
aan te maken.

<screen>
<computeroutput>[root@kes majordomo-1.94.5]# </computeroutput><userinput>touch majordomo.aliases.db</userinput>
<computeroutput>[root@kes majordomo-1.94.5]# </computeroutput><userinput>chmod 644 majordomo.aliases.db</userinput>
</screen>

Een andere methode hiervoor is het simpelweg aanmaken van het bestand
<filename>majordomo.aliases</filename> in de directory 
<filename>/etc/</filename>, in plaats van in de homedirectory van
Majordomo.
</para>

</sect3>

<sect3>
<title>Niet gewenste beveiligingsfeatures van Sendmail</title>

<para>
Voor bepaalde setups, kunnen een aantal beveiligingsmaatregels die
Sendmail gebruikt, de juiste werking van Majordomo verhinderen. Uiteraard
moeten deze beveiligingsfeatures worden uitgezet.
</para>

</sect3>

<sect3 id="sec-sendtrust">
<title>Toevertrouwde gebruikers van sendmail</title>

<para>
Sendmail is zodanig geprogrammeerd dat het mensen moeilijk maakt om
"perfecte" vervalsingen van E-mail te maken. Wanneer een gebruiker bijvoorbeeld
een bericht via SMTP verzendt, wordt het IP bronadres kenmerkend gelogd,
en wanneer een gebruiker een bericht verstuurt door het direct aan Sendmail
te geven en de afzender specificeert middels de opdracht
<command>sendmail -f</command>, plaatst sendmail een waarschuwingsmelding
in de header waarin het de gebruiker aangeeft wie de melding echt verzond.
Echter een aantal programma's moet gemaskerd als andere gebruikers berichten 
kunnen versturen en met deze extra beveiligingsregel toegevoegd aan de
header is ergerlijk. Sendmail handelt dit probleem af door middel van
toevertrouwde gebruikers. Voor de juiste werking van het script 
<command>resend</command> van Majordomo, moet <literal>majordomo</literal>
een toevertrouwde gebruiker van sendmail worden, aangezien het mail van 
andere gebruikers moet herverzenden.
</para>

<para>
Een manier om Majordomo een toevertrouwde gebruiker te maken is door het
toevoegen van de regel

<screen>
Tmajordomo
</screen>

aan het bestand <filename>sendmail.cf</filename>.
</para>

</sect3>

<sect3 id="smrsh">
<title>Sendmail Restricted Shell</title>

<para>
Als Sendmail gebruik maakt van <command>smrsh</command>, dan zijn de enige
programma's die kunnen worden uitgevoerd, die onder de directory 
<filename>/etc/smrsh/</filename>. Misschien de beste oplossing om de wrapper
vanuit het bestand <filename>aliases</filename> uit te voeren is het
aanmaken van een symbolische link vanuit <filename>/etc/smrsh/wrapper</filename> naar <filename>/usr/local/majordomo-1.94.5/wrapper</filename>.

<screen>
<computeroutput>[root@kes smrsh]# </computeroutput><userinput>ln -s /usr/local/majordomo-1.94.5/wrapper wrapper</userinput>
</screen>

Een tweede oplossing is het daadwerkelijk verplaatsen van de wrapper naar
de directory <filename>/etc/smrsh/</filename>.

<screen>
<computeroutput>[root@kes smrsh]# </computeroutput><userinput>mv /usr/local/majordomo-1.94.5/wrapper ./</userinput>
</screen>

Als de beveiliging niet zo van belang is, dan kan de secure shell worden
gedeactiveerd. Een tamelijk grove methode is het verwijderen van 
<filename>/usr/sbin/smrsh</filename> en daarvoor in de plaats kopi&euml;ren of
linken van <filename>/bin/sh</filename>.

<screen>
<computeroutput>[root@kes sbin]# </computeroutput><userinput>rm -f smrsh</userinput>
<computeroutput>[root@kes sbin]# </computeroutput><userinput>ln -s /bin/sh smrsh</userinput>
</screen>

Een betere (maar moeilijkere) methode is het bewerken van 
<filename>sendmail.cf</filename>.  
Wijzig de verwijzing van <filename>/usr/sbin/smrsh</filename>

<screen>
Mprog,		P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/,
		T=X-Unix,
		A=sh -c $u
</screen>

naar <filename>/bin/sh</filename>

<screen>
Mprog,		P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/,
		T=X-Unix,
		A=sh -c $u
</screen>
</para>
</sect3>

<sect3 id="group-perm">
<title>Schrijfpermissies van de groep</title>

<para>
Als je van plan bent een niet-root gebruiker discussielijsten te laten
toevoegen en beheren, dan zul je het bestand <filename>majordomo.aliases</filename> voor de groep schrijfbaar moeten maken.
Om beveiligingsredenen staat Sendmail deze configuratie echter niet toe
(zie <xref linkend="sendmail-security">).  
Voeg de regel

<screen>
O DontBlameSendmail=GroupWritableAliasFile
</screen>

toe aan het bestand <filename>sendmail.cf</filename> om deze beveiligingsfeature
te deactiveren. Ook moet de directory lists schrijfbaar zijn voor de groep om
een lijst toe te kunnen voegen, maar Sendmail zal ook deze setup om
vergelijkbare beveiligingsredenen niet toelaten. Voor het deactiveren van
deze beveiligingsfeature is de regel

<screen>
O DontBlameSendmail=IncludeFileInGroupWritableDirPath
</screen>

nodig in het configuratiebestand <filename>sendmail.cf</filename>.
</para>
</sect3>
</sect2>

<sect2>
<title>Configureren van <filename>sendmail.cf</filename> met behulp van de M4 configuratie</title>

<para>
Voor beheerders die het bestand <filename>sendmail.cf</filename> niet direct
willen bewerken, is het mogelijk gebruik te maken van M4 om het bestand aan
te maken; in deze sectie wordt beschreven hoe de besproken wijzigingen in
de vorige sectie te maken aan het mc bestand in plaats van het cf bestand.
</para>

<para>
Het doel van de M4 configuratie is te voorzien in een makkelijke manier om
het bestand <filename>sendmail.cf</filename> aan te maken. Het idee erachter
is dat het aangemaakte mc bestand makkelijker is te begrijpen dan het bestand 
<filename>sendmail.cf</filename>. Door uitvoering van de preprocessor m4,
wordt een <filename>sendmail.cf</filename> bestand gegenereerd:

<screen>
<computeroutput>[root@kes etc]# </computeroutput><userinput>m4 /etc/sendmail.mc &#62; /etc/sendmail.cf</userinput>
</screen>

</para>

<sect3>
<title>Een ander aliases bestand aanmaken</title>

<para>
Voeg de regel

<screen>
define(`ALIAS_FILE',`/etc/aliases,/usr/local/majordomo-1.94.5/majordomo.aliases')
</screen>

toe aan het bestand <filename>sendmail.mc</filename>.
</para>

</sect3>

<sect3>
<title>Van Majordomo een toevertrouwde gebruiker maken</title>

<para>
Voeg de regel

<screen>
define(`confTRUSTED_USERS',`majordomo')
</screen>

toe aan het bestand <filename>sendmail.mc</filename>.
</para>

</sect3>

<sect3>
<title>Deactiveer de Sendmail Secure Shell</title>

<para>
Verwijder de regel

<screen>
FEATURE(smrsh)
</screen>

uit het bestand <filename>sendmail.mc</filename>.
</para>

</sect3>

<sect3>
<title>Deactiveren van beveiligingsfeatures</title>

<para>
Voeg voor het deactiveren van de beveiligingscontrole op de schrijfpermissie
van de groep op het aliases bestand de regel

<screen>
define(`confDONT_BLAME_SENDMAIL',`GroupWritableAliasFile')
</screen>

toe aan het bestand <filename>sendmail.mc</filename>.
</para>

<para>
Voeg voor het deactiveren van de beveligingscontrole op de schrijfpermissie
van het pad op de include bestanden de regel

<screen>
define(`confDONT_BLAME_SENDMAIL',`IncludeFileInGroupWritableDirPath')
</screen>

toe. Gebruik voor het deactiveren van beide opties

<screen>
define(`confDONT_BLAME_SENDMAIL',`GroupWritableAliasFile,IncludeFileInGroupWritableDirPath')
</screen>

Het toevoegen van het laatste statement is gelijk aan het schrijven van

<screen>
O DontBlameSendmail=GroupWritableAliasFile,IncludeFileInGroupWritableDirPath
</screen>

in <filename>sendmail.cf</filename>, en deze regel is gelijk aan het schrijven
van deze regels op aparte regels:

<screen>
O DontBlameSendmail=GroupWritableAliasFile
O DontBlameSendmail=IncludeFileInGroupWritableDirPath
</screen>
</para>
</sect3>
</sect2>

<Sect2 id="sendmail-security">
<title>Sendmail beveiligingskwesties</title>

<para>
Beveiliging is omgekeerd evenredig proportioneel met gemak; 
de enige veilige machine
is die door niemand kan worden benaderd. Wanneer een aantal van de
beveiligingsfeatures zijn gedeactiveerd, zal een machine onvermijdelijk minder
veilig worden. Het is echter van belang de basisbeveiligingsrisico's te
begrijpen om vast te stellen of het gemak zwaarder weegt dan mogelijke
beveiligingslekken.
</para>

<sect3 id="group-security">
<title>Consequenties van onveilige te beschrijven groepen</title>

<para>
Als een gebruiker schrijfpermissies heeft om een aliases bestand te
benaderen, dan zou het een <emphasis>toevertrouwde gebruiker</emphasis>
moeten zijn. Door het plaatsen van een regel in het aliases bestand
(zoals die wordt gebruikt om <command>wrapper</command> uit te voeren) kan
een gebruiker elk programma uitvoeren met de privileges van Sendmail
(<literal>daemon</literal> of, in oudere versies, <literal>root</literal>).  
Deze ongepaste daad zou mensen toestaan de permissies van bestanden
te verwijderen of wijzigen die toebehoren aan <literal>daemon</literal> 
(met behulp van de opdrachten <command>rm</command> of <command>chmod</command> in het aliases bestand). Tot op zekere hoogte wordt deze mogelijkheid
vermeden door gebruik te maken van <command>smrsh</command>; 
men moet echter nog steeds zorgvuldig te werk gaan betreffende de bestanden
die aanwezig zijn in de directory <filename>/etc/smrsh/</filename>.
</para>

<para>
Een andere belangrijke beveiligingskwestie is dat de gebruiker die het bestand
aliases kan benaderen, bestanden kan toevoegen of beschrijven die toebehoren
aan <literal>daemon</literal> door gebruik te maken van bestandsomleiding
(een <literal>&#62;&#62;</literal> of <literal>&#62;</literal> in plaats van
een <literal>|</literal>). Evenzo kan ook dit lek worden weerlegd door
een regel toe te voegen aan het bestand <filename>sendmail.cf</filename> 
een beperking opleggend welke bestanden kunnen worden beschreven via het
aliases ebstand. Voeg de regel

<screen>
O SaveFileEnvironment=/pad/naar/veilige/bestanden
</screen>

toe aan het bestand <filename>sendmail.cf</filename> of voeg

<screen>
define(`confSAFE_FILE_ENV',`/pad/naar/veilige/bestanden')
</screen>

toe aan het bestand <filename>sendmail.mc</filename>.
Echter deze manoevre laat slechts een dunne beveiligingslaag tussen de
gebruiker en <literal>daemon</literal> achter. Een veel beter idee zou zijn
om het bestand aliases alleen schrijfbaar te maken voor root en een SUID
root programma aan te maken om de aan Majordomo gerelateerde aliassen 
toe te voegen of te verwijderen.
</para>

<para>
In het geval van include of .forward bestanden, worden opdrachten of
omleidingen uitgevoerd als de gebruiker die eigenaar is van het bestand.
Als daarom een bestand schrijfbaar is voor de groep, dan kan een deelnemer
van de groep opdrachten uitvoeren als de gebruiker die eigenaar is van
het bestand. Met andere woorden, elke gebruiker in de groep 
<literal>majordomo</literal> zou opdrachten als Majordomo uit kunnen
voeren. Echter gezien de <literal>majordomo</literal> gebruiker zonder
een shell wordt aangemaakt, zullen opdrachten of omleidingen niet worden
verwerkt in include bestanden met als eigenaar <literal>majordomo</literal>.
</para>
</sect3>

<sect3>
<title>Consequenties van onveilige voor de groep schrijfbare directorypaden</title>

<para>
Als een gebruiker voor de groep schrijfpermissies heeft op een directory,
bijvoorbeeld <filename>/etc/</filename>, dan zou de gebruiker simpelweg 
elk bestand kunnen verplaatsen en daarvoor in de plaats een nieuwe aanmaken. 
Een aanval zou als volgt kunnen verlopen

<screen>
<computeroutput>[mallory@kes etc]$ </computeroutput><userinput>mv aliases ...</userinput>
<computeroutput>[mallory@kes etc]$ </computeroutput><userinput>vi aliases</userinput>
</screen>

De gebruiker kan dan zijn eigen aliassen aanmaken! Deze aanval zou echter
kunnen worden verhinderd door de beveiligingscontrole van Sendmail van
onveilige voor de groep schrijfbare paden.
Een dergelijke aanval zou ook zo werken bij include en .forward bestanden
met onveilige paden.
</para>

<para>
In het geval van Majordomo, heeft de gebruiker in de groep 
<literal>majordomo</literal> reeds toegang tot de include bestanden,
dus dit comprimitteert niet echt de beveiliging.  Echter een beheerder 
zou zorgvuldig moeten zien te verhinderen deze onwenselijke onveilige 
groep schrijfbare directorypaden in de toekomst plaats te laten vinden, 
omdat Sendmail hier <emphasis>niet</emphasis> op zal controleren.
</para>

</sect3>

<sect3>
<title>De privacy van deelnemers beschermen</title>

<para>
Helaas kunnen geraffineerde spammers discussielijsten uitbreiden met behulp van
de SMTP-opdracht <command>EXPN</command>. Om deze reden zouden
beheerders deze feature moeten deactiveren wanneer discusselijsten worden
verleend.  Voeg de regel

<screen>
O PrivacyOptions=noexpn
</screen>

toe aan het bestand <filename>sendmail.cf</filename> of

<screen>
define(`confPRIVACY_FLAGS',`noexpn')
</screen>

aan het bestand <filename>sendmail.mc</filename>.
</para>
</sect3>
</sect2>
</sect1>

<sect1>
<title>Majordomo</title>

<para>
Majordomo is natuurlijk het stuk code waar het in dit document om draait;
het bestaat uit een verzameling Perl-scripts met als enige doel het beheren
van discussielijsten.
</para>

<sect2>
<title>Voorbereiden van de installatie</title>

<para>
Download de met gzip gecomprimeerde broncodedistributie van de laatste versie
van Majordomo vanaf <ulink url="http://www.greatcircle.com/majordomo/">Great Circle Associates</ulink> en decomprimeer het

<screen>
<computeroutput>[jarchie@kes jarchie]$ </computeroutput><userinput>tar zxvf majordomo-1.94.5.tar.gz</userinput>
</screen>

Hiermee zal een subdirectory worden aangemaakt met alle bestanden die
nodig zijn om Majordomo te installeren; deze directory kan 
<emphasis>niet</emphasis> dezelfde directory zijn waarin Majordomo moet
worden ge&iuml;nstalleerd.
</para>

<para>
Majordomo moet zodanig worden uitgevoerd onder een specifieke UID en GID 
dat wanneer een van de scripts wordt uitgevoerd, het zal draaien onder
Majordomo's UID. Dus is het nodig een besluit te nemen over onder welke
UID en GID Majordomo zal draaien. Ook moet Majordomo een toevertrouwde
gebruiker van Sendmail zijn (zie <xref linkend="sec-sendtrust">).
</para>

<para>
Kijk in de bestanden <filename>/etc/passwd</filename> en 
<filename>/etc/group</filename> om een nog niet in gebruik genomen UID
en GID te achterhalen. Voor dit voorbeeld werd gekozen voor UID 16 en GID 16.
Je moet een beslissing nemen over de lokatie waar de Majordomo-scripts zullen
voorkomen; in deze HOWTO werd gekozen voor de directory
<filename>/usr/local/majordomo-1.94.5/</filename>.
Voeg regels vergelijkbaar met

<screen>
majordomo:x:16:16:Majordomo List Manager:/usr/local/majordomo-1.94.5:
</screen>

toe aan <filename>/etc/passwd</filename> als je gebruik maakt van
een shadow password bestand en voeg een van toepassing zijnde regel toe aan
<filename>/etc/shadow</filename>.

<screen>
majordomo:*:10883:0:88888:7:::
</screen>

Gebruik de andere regels in deze bestanden als een richtlijn voor wat er
precies zou moeten worden toegevoegd. <emphasis>Dit zijn slechts de waarden
op mijn systeem.</emphasis>  Als je geen gebruik maakt van shadow-passwords,
dan is alleen een regel nodig in het bestand <filename>/etc/passwd</filename>.
</para>

<para>
Voeg voor de aanmaak van een Majordomo groep een regel toe vergelijkbaar met

<screen>
majordomo:x:16:jarchie
</screen>

aan het bestand <filename>/etc/group</filename>. 
Je gebruikersnaam toevoegen aan het einde van de regel geeft je toegang tot
de Majordomo bestanden die schrijfbaar zijn voor de groep.
</para>

</sect2>

<sect2>
<title>Bewerken van de installatiebestanden</title>

<para>
De <filename>Makefile</filename> bevat alle informatie nodig om Majordomo
te installeren; gewoonlijk moeten regels in de <filename>Makefile</filename>
worden bewerkt die verwijzen naar systeemspecifieke instellingen zodat
Majordomo zuiver op je systeem kan worden ge&iuml;nstalleerd.
De meeste standaardinstellingen zijn correct; echter de volgende
instellingen, vrijwel onveranderlijk, moeten per systeem worden gewijzigd.

<screen>
<computeroutput>[jarchie@kes majordomo-1.94.5]$ </computeroutput><userinput>vi Makefile</userinput>
</screen>

De instellingen

<screen>
PERL = /bin/perl
CC = cc
W_HOME = /usr/test/majordomo-$(VERSION)
MAN = $(W_HOME)/man
W_USER = 123
W_GROUP = 45
</screen>

zouden moeten worden gewijzigd in iets meer geschikt voor je systeem.
In mijn setup bijvoorbeeld zijn de waarden gewijzigd in

<screen>
PERL = /usr/bin/perl
CC = gcc
W_HOME = /usr/local/majordomo-1.94.5
MAN = /usr/man
W_USER = 16
W_GROUP = 16
</screen>

Ook moet het bestand <filename>majordomo.cf</filename> worden aangemaakt.
Een makkelijke manier om dit bestand aan te maken is door het aangeleverde
bestand <filename>sample.cf</filename> te kopi&euml;ren naar 
<filename>majordomo.cf</filename> en het te bewerken.

<screen>
<computeroutput>[jarchie@kes majordomo-1.94.5]$ </computeroutput><userinput>cp sample.cf majordomo.cf</userinput>
<computeroutput>[jarchie@kes majordomo-1.94.5]$ </computeroutput><userinput>vi majordomo.cf</userinput>
</screen>

Nogmaals, de meeste standaardinstellingen zijn correct, maar de 
volgende regels moeten wellicht voor je systeem worden aangepast van

<screen>
$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";
</screen>

in iets meer passend zoals

<screen>
$whereami = "kes.emeraldis.com";
$whoami = "majordomo\@$whereami";
$whoami_owner = "majordomo-owner\@$whereami";
     $homedir = "/usr/local/majordomo-1.94.5";
$digest_work_dir = "/usr/local/majordomo-1.94.5/digest";
$sendmail_command = "/usr/sbin/sendmail";
</screen>

<varname>$whoami</varname> en <varname>$whoami_owner</varname> 
hoeven voor de werking van Majordomo niet te worden gewijzigd; ik wijzigde
ze omdat ik het intikken van hoofdletters graag wil voorkomen. 
<varname>$digest_work_dir</varname> is een tijdelijke
directory waarin de digest bestanden zouden moeten worden geplaatst;
aan deze directory zou moeten worden toegekend de directory waarin je
wilt dat de digests worden opgeslagen.
Maak je niet druk om deze optie als je niet van plan bent om digest lijsten
te gebruiken.  
<varname>$whereami</varname>, <varname>$homedir</varname>, en 
<varname>$sendmail_command</varname> zouden moeten worden
gewijzigd in de van toepassing zijnde waarden voor je systeem.
In tegenstelling tot de <filename>Makefile</filename>, kunnen deze opties
altijd worden gewijzigd nadat Majordomo is ge&iuml;nstalleerd door het 
bewerken van <filename>majordomo.cf</filename> in de directory waarin
Majordomo werd ge&iuml;nstalleerd.
(Het configuratiebestand wordt simpelweg gekopieerd tijdens de setup.)
</para>

</sect2>

<sect2>
<title>Majordomo installeren</title>

<para>
De volgende stap bestaat uit het compileren van de Majordomo wrapper.
De wrapper is de enige Majordomo component die moet worden gecompileerd,
omdat al het andere bestaat uit een verzameling perl-scripts en daarom
niet wordt gecompileerd.

<screen>
<computeroutput>[jarchie@kes majordomo-1.94.5]$ </computeroutput><userinput>make wrapper</userinput>
</screen>

Geef voor de installatie van de Majordomo bestanden de opdrachten:

<screen>
<computeroutput>[root@kes majordomo-1.94.5]# </computeroutput><userinput>make install</userinput>
<computeroutput>[root@kes majordomo-1.94.5]# </computeroutput><userinput>make install-wrapper</userinput>
</screen>

De eerste opdracht kan als de Majordomo gebruiker (in de veronderstelling
dat <literal>majordomo</literal> <varname>$home_dir</varname> kan aanmaken
of hier toegang toe heeft), maar de tweede opdracht moet worden gegeven
als <literal>root</literal> zodat het installatiescript kan SUID root de 
Majordomo wrapper. (Aangezien, <literal>majordomo</literal> werd aangemaakt
zonder loginshell of wachtwoord, zul je als root de opdracht
<command>su majordomo</command> moeten geven om <literal>majordomo</literal>
te worden als je de eerste opdracht als <literal>majordomo</literal> uit wilt
voeren.)
</para>
</sect2>

<sect2>
<title>Aanmaken van de Majordomo aliassen</title>

<para>
Sendmail aliassen moeten voor Majordomo worden aangemaakt zodat opdrachten
verzonden naar Majordomo kunnen worden verwerkt door 
<command>majordomo</command>, en een alias voor de eigenaar van Majordomo
moet worden aangemaakt, zodat mensen je kunnen mailen via het standaardadres
<literal>owner-majordomo</literal>.  Voeg de volgende regels toe aan het
bestand aliases (zie <xref linkend="sec-aliases">).

<screen>
majordomo:       "|/usr/local/majordomo-1.94.5/wrapper majordomo"
owner-majordomo: jarchie
majordomo-owner: jarchie
</screen>
</para>
</sect2>

<sect2>
<title>Testen van de configuratie</title>

<para>
Start als reguliere gebruiker (<emphasis>niet</emphasis> als <literal>majordomo</literal> <emphasis>of</emphasis> als <literal>root</literal>)

<screen>
<computeroutput>[jarchie@kes jarchie]$ </computeroutput><userinput>/usr/local/majordomo-1.94.5/wrapper config-test</userinput>
</screen>

Dit programma kan de meeste problemen in de Majordomo installatie detecteren.
</para>
</sect2>

<sect2>
<title>Lijsten aanmaken</title>

<para>
Voor het aanmaken van een lijst, maak je een bestand aan met de naam
van de lijst in de Majordomo-directory lists. Voor bijvoorbeeld het 
aanmaken van een lijst met de naam test, maak je als Majordomo een bestand
test aan

<screen>
<computeroutput>[root@kes /]# </computeroutput><userinput>su majordomo</userinput>
<computeroutput>[majordomo@kes /]$ </computeroutput><userinput>touch /usr/local/majordomo-1.94.5/lists/test</userinput>
</screen>

en voeg de gerelateerde aliassen toe

<screen>
test:	       :include:/usr/local/majordomo-1.94.5/lists/test
owner-test:    jarchie
test-request:  "|/usr/local/majordomo-1.94.5/wrapper request-answer test"
test-approval: jarchie
</screen>
</para>
</sect2>

<sect2>
<title>Verder testen van de configuratie</title>

<para>
Test nu de werking van de lijst door een <command>lists</command> opdracht
aan Majordomo uit te voeren.

<screen>
<computeroutput>[jarchie@kes jarchie]$ </computeroutput><userinput>echo lists | mail majordomo</userinput>
</screen>

Het zou slechts een seconde moeten duren eer <command>majordomo</command> 
antwoordt met een bericht waarin alle lijsten die thans zijn opgesteld zijn
opgesomd. Probeer vervolgens de opdracht <command>help</command> uit te
voeren.

<screen>
<computeroutput>[jarchie@kes jarchie]$ </computeroutput><userinput>echo help | mail majordomo</userinput>
</screen>

Majordomo zou moeten reageren met een lijst met alle opdrachten die
Majordomo accepteert. Het is wellicht een goed idee om het bericht voor
toekomstige referenties te bewaren.
</para>

<para>
Probeer jezelf in- en uit te schrijven op de lijst om te achterhalen of
de aliassen correct werken.

<screen>
<computeroutput>[jarchie@kes jarchie]$ </computeroutput><userinput>echo subscribe test | mail majordomo</userinput>
</screen>

Je zult een E-mailbericht ontvangen met instructies hoe je de aanmelding
kunt bevestigen als ook een melding bevestigend dat je opdracht succesvol was.
Na het terugsturen van je bevestiging, zou Majordomo twee meldingen terug
moeten sturen, &eacute;&eacute;n melding waarin staat dat je aanmeldingsverzoek
succesvol was en een andere melding die je welkom heet op de lijst test.
Aan de eigenaar van de lijst zal ook een bericht worden gezonden waarin staat
aangegeven dat je je hebt aangemeld op de lijst.
</para>

<para>
Stuur de opdracht <command>unsubscribe</command> om je uit te schrijven
van een lijst

<screen>
<computeroutput>[jarchie@kes jarchie]$ </computeroutput><userinput>echo unsubscribe test | mail majordomo</userinput>
</screen>

Je zou een melding terug moeten krijgen waarin staat dat je opdracht
succesvol was.
</para>
</sect2>

<sect2>
<title>Betere aliassen aanmaken</title>

<para>
Bij een aantal lijsten kan het wenselijk zijn om Majordomo de berichten te
laten verwerken, voordat ze de lijst bereiken.  
Majordomo heeft bijvoorbeeld een <command>resend</command> script om
berichten gebaseerd op inhoud (zoals woorden die taboe zijn) automatisch
te filteren om te voorkomen dat mensen Majordomo opdrachten naar de lijst
sturen, en nog andere features. Voor het gebruik van deze opties is het nodig
een betere set aliassen te gebruiken, zoals

<screen>
test:        "|/usr/local/majordomo-1.94.5/wrapper resend -l test test-list"
test-list:   :include:/usr/local/majordomo-1.94.5/lists/test
owner-test:  jarchie
test-owner:  jarchie
test-request:  "|/usr/local/majordomo-1.94.5/wrapper majordomo -l test"
</screen>

De laatste regel maakt het iemand mogelijk om simpelweg een bericht te sturen
naar <literal>test-request@kes.emeraldis.com</literal> met de tekst 
<literal>subscribe</literal> in plaats van het versturen van een bericht naar
<literal>majordomo@kes.emeraldis.com</literal> met de tekst 
<literal>subscribe test</literal>.  Als sendmail gebruik maakt van smrsh,
dan zou de bovenstaande aliases verwijzen naar de kopie van de wrapper in
het veilige pad, gewoonlijk <filename>/etc/smrsh/wrapper</filename>.
</para>
</sect2>

<sect2>
<title>Fouten opsporen</title>
<para>
Het gebeurt regelmatig dat de permissies van Majordomo niet correct worden
ingesteld wat veroorzaakt dat Majordomo niet naar behoren werkt.
Gelukkig geven Sendmail en Majordomo kenmerkend fatsoenlijke foutmeldingen
die een probleem aanduiden. De directory <filename>lists</filename> 
bijvoorbeeld moet uitvoerbaar zijn voor de gebruiker sendmail setuids naar,
typisch <literal>mail</literal> of <literal>daemon</literal>.  
Als <command>sendmail</command> <filename>lists</filename> niet kan uitvoeren,
dan moeten de permissies wat minder strict zijn.
<screen>
<computeroutput>[root@kes root]# </computeroutput><userinput>chmod +x /usr/local/majordomo-1.94.5/lists</userinput>
</screen>
Een ander gebruikelijk probleem wordt veroorzaakt doordat de directory
<filename>lists</filename> schrijfbaar is door de groep. 
Als oplossing van dit probleem kan men de schrijfbare bit van de groep
verwijderen of de sendmailoptie 
<literal>IncludeFileInGroupWritableDirPath</literal> gebruiken (zie <xref linkend="group-perm"> en <xref linkend="group-security"> voor meer details).
</para>
</sect2>

<sect2>
<title>Majordomo beveiligingskwesties</title>
<para>
Majordomo is bedoeld te worden uitgevoerd op een ge&iuml;soleerd systeem;
er bestaan een paar welbekende beveiligingslekken in de scripts waarmee elke
lokale gebruiker <command>wrapper</command> kan draaien om code als
de gebruiker <literal>majordomo</literal> uit te voeren.  
Als Majordomo op een systeem moet worden uitgevoerd die voorziet in
gebruikers met toegang tot een shell, dan is het aan te raden de permissies
op de wrapper te verscherpen. Dit kan worden bewerkstelligd door de
uitvoerbare bit voor alle overige gebruikers te verwijderen en
de groep van de wrapper met <command>chgrp</command> te wijzigen in
de gebruiker die de Majordomo-scripts moet uitvoeren. Als bijvoorbeeld
Sendmail en MajorCool beiden worden gebruikt om de wrapper uit te voeren,
gebruik dan de opdrachten

<screen>
<computeroutput>[root@kes root]# </computeroutput><userinput>cp /usr/local/majordomo-1.94.5/wrapper /etc/smrsh/wrapper</userinput>
<computeroutput>[root@kes root]# </computeroutput><userinput>chmod 4750 /usr/local/majordomo-1.94.5/wrapper</userinput>
<computeroutput>[root@kes root]# </computeroutput><userinput>chown root:nobody /usr/local/majordomo-1.94.5/wrapper</userinput>
<computeroutput>[root@kes root]# </computeroutput><userinput>chmod 4750 /etc/smrsh/wrapper</userinput>
<computeroutput>[root@kes root]# </computeroutput><userinput>chown root:mail /etc/smrsh/wrapper</userinput>
</screen>
om het systeem te beveiligen. Dit laat toe dat <command>sendmail</command> 
(onderwijl onder <literal>mail</literal> draaiend) <command>/etc/smrsh/wrapper</command> uit te voeren terwijl het toestaat dat de webserver's MajorCool (draaiend onder <literal>nobody</literal>) <command>/usr/local/majordomo-1.94.5/wrapper</command> uitvoert. Deze oplossing zal echter toestaan dat iedereen met het UID
of GID <literal>mail</literal> of <literal>nobody</literal> ook toegang tot
het <literal>majordomo</literal> account kan verkrijgen.  
Ter bescherming van het <literal>nobody</literal> account, is het van belang
normale gebruikers niet toe te staan gebruik te laten maken van serversite
includes of cgi-scripts, tenzij die services niet onder
<literal>nobody</literal> draaien.
</para>
</sect2>
</sect1>

<sect1>
<title>MajorCool</title>

<para>
MajorCool is een web-gebaseerde interface naar Majordomo waarmee gebruikers
zichzelf kunnen toevoegen aan lijsten en kunnen verwijderen van lijsten en
lijsten kunnen beheren waarvan ze eigenaar zijn. De installatie is
tamelijk recht-door-zee; het enige dat hoeft te worden gedaan is het uitpakken
van de bestanden, het bewerken van een regel in het 
<command>Configure</command> script, en het uitvoeren van het script.
</para>

<sect2>
<title>MajorCool extraheren</title>

<para>
De laatste bestanden kunnen worden gedownload van 
<ulink url="http://www.conveyanced.com/MajorCool/">Conveyance Digital</ulink>.

<screen>
<computeroutput>[jarchie@kes jarchie]$ </computeroutput><userinput>mkdir majorcool</userinput>
<computeroutput>[jarchie@kes jarchie]$ </computeroutput><userinput>mv majorcool.tar.gz ./majorcool/</userinput>
<computeroutput>[jarchie@kes jarchie]$ </computeroutput><userinput>cd majorcool/</userinput>
<computeroutput>[jarchie@kes majorcool]$ </computeroutput><userinput>tar zxvf majorcool.tar.gz</userinput>
</screen>
</para>

</sect2>

<sect2>
<title>Bewerk het <command>Configure</command> Script</title>

<para>
Open <command>Configure</command> en

<screen>
<computeroutput>[jarchie@kes majorcool]$ </computeroutput><userinput>vi Configure</userinput>
</screen>

wijzig de regel

<screen>
PERLBIN="/usr/local/bin/perl"	# Hoe een perlscript te starten
</screen>

in de juiste lokatie van <command>perl</command>

<screen>
PERLBIN="/usr/bin/perl"		# Hoe een perlscript te starten
</screen>

anders zal MajorCool niet juist worden ge&iuml;nstalleerd.
</para>

</sect2>

<sect2>
<title>MajorCool installeren</title>

<para>
Tijdens de uitvoering van het <command>Configure</command> script, zal het
simpelweg indrukken van de Enter-toets de standaardwaarde accepteren als
de standaardkeuze voor een optie akkoord is.

<screen>
<computeroutput>[root@kes majorcool]# </computeroutput><userinput>./Configure</userinput>
</screen>

Het <command>Configure</command> script zal je vragen een paar maal op de
Enter-toets te drukken, en dan zal het vragen om de lokatie van Majordomo
en nog wat vragen stellen over de setup van je Webserver.

<screen>
<computeroutput>What is the installation directory of Majordomo?
	[]: </computeroutput><userinput>/usr/local/majordomo-1.94.5</userinput>
<computeroutput>Will place the MajorCool programs in /usr/local/majordomo-1.94.5.
 
What is the path to your Majordomo configuration file?
	[/usr/local/majordomo-1.94.5/majordomo.cf]: 
Using configuration file name '/usr/local/majordomo-1.94.5/majordomo.cf'
 
Where would you like temp files created when MajorCool runs?
	[/tmp]: 

MajorCool needs to install CGI programs, support files, and icons in
your Web server directories.
 
What is the root directory for your Web server?
	[]: </computeroutput><userinput>/var/www</userinput>

<computeroutput>Where is the cgi-bin directory for your Web server?
	[/var/www/cgi-bin]: 
Will place the programs in /var/www/cgi-bin.
 
What is your server's URL for '/var/www/cgi-bin'?
	[/cgi-bin]: 
 
Where is the image directory for your Web server?
	[/var/www/icons]: 
Will place the icons in /var/www/icons.
 
What is your server's URL for '/var/www/icons'?
	[/images]: </computeroutput><userinput>/icons</userinput>

<computeroutput>Where is the root directory for documents on your Web server?
	[]: </computeroutput><userinput>/var/www/html</userinput>
</screen>

Het <command>Configure</command> script zal nog andere vragen stellen die
minder kritiek zijn. (De standaardwaarden zijn prima, maar wellicht dat je
een paar instellingen naar eigen voorkeuren wilt wijzigen. In tegenstelling
tot een aantal Webserver vragen, zou de betekenis moeten blijken uit de
context.) Wanneer het configuratiebestand dat het script genereerde uit je
antwoorden wordt weergegeven, zou je de nieuwe versie moeten accepteren.

<screen>
<computeroutput>Accept the new version? [yes|no|list|edit|diff]? </computeroutput><userinput>y</userinput>
</screen>

Het installatiescript zal de MajorCool bestanden installeren en het
<command>majordomo</command> cgi-script uitvoeren die als uitvoer het
html-bestand naar de console geeft. Bekijk het cgi-script
<command>majordomo</command> vanaf het web ter controle of de installatie 
werkte.

<screen>
<computeroutput>[jarchie@kes jarchie]$ </computeroutput><userinput>lynx http://localhost/cgi-bin/majordomo</userinput>
</screen>
</para>
</sect2>
</sect1>

<sect1>
<title>Veel gestelde vragen</title>
<para>
Twee vragen die vaak worden gesteld.
</para>
<qandaset>
<qandaentry>
<question>
<para>
Waarom geeft sendmail de foutmelding, <literal>sh: wrapper not available for sendmail programs</literal>?
</para>
</question>
<answer>
<para>
<command>smrsh</command> zal alleen bepaalde bestanden uit laten voeren door
sendmail. Zie <xref linkend="smrsh">.
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
Waarom zal RedHat mijn mc bestand niet verwerken?
</para>
</question>
<answer>
<para>
Om de een of andere reden neemt RedHat de benodigde bestanden om mc bestanden
te verwerken niet op. Overeenkomstig 
<filename>/etc/mail/sendmail.mc</filename>, zouden deze bestanden in het
package <literal>sendmail-cf</literal> moeten zitten; ik slaagde er echter
niet in dit package op de CD te vinden. Installeer ter correctie van dit
probleem RedHat's sendmail SRPM, decomprimeer de sendmail tarball en 
kopieer de benodigde macrobestanden.
<screen>
<computeroutput>[root@kes root]# </computeroutput><userinput>rpm -i sendmail-8.11.0-8.src.rpm</userinput>
<computeroutput>[root@kes root]# </computeroutput><userinput>cd /usr/src/redhat/SOURCES/</userinput>
<computeroutput>[root@kes SOURCES]# </computeroutput><userinput>tar zxvf sendmail-8.11.0.tar.gz</userinput>
<computeroutput>[root@kes SOURCES]# </computeroutput><userinput>cd sendmail-8.11.0</userinput>
<computeroutput>[root@kes sendmail-8.11.0]# </computeroutput><userinput>cp -R cf /usr/lib/sendmail-cf</userinput>
<computeroutput>[root@kes sendmail-8.11.0]# </computeroutput><userinput>cd ..</userinput>
<computeroutput>[root@kes SOURCES]# </computeroutput><userinput>rm -rf sendmail-8.11.0</userinput>
</screen>
Bovendien bestaat in het standaardbestand 
<filename>/etc/mail/sendmail.mc</filename>, een kleine syntaxfout.
(Het beginnende enkele aanhalingstekens op een regel staat andersom.)
De regel
<screen>
define('ALIAS_FILE','/etc/aliases')dnl
</screen>
zou moeten worden gewijzigd in
<screen>
define(`ALIAS_FILE',`/etc/aliases')dnl
</screen>
Na deze wijzigingen zou het nieuwe <filename>sendmail.cf</filename> moeten
worden gegenereerd.
</para>
</answer>
</qandaentry>
</qandaset>
</sect1>

<glossary>
<title>Lijst met termen</title>

<glossentry id="def-digest">
<glossterm>digest</glossterm>
<glossdef>
<para>
een verzameling nieuwe berichten als &eacute;&eacute;n bericht gemaild naar 
de deelnemers van een archieflijst.
Een lijst wordt `digested' genoemd, wanneer het wordt gearchiveerd en periodiek
een digest wordt uitgezonden.
</para>
</glossdef>
</glossentry>

<glossentry id="def-gid">
<glossterm>Group ID</glossterm>
<acronym>GID</acronym>
<glossdef>
<para>
een identificatienummer toegekend aan bestanden, directory's en verwerkt
om de toegang te beperken, vergelijkbaar met UID, behalve dat meerdere mensen
deelnemer kunnen zijn van een groep. Op Unix type systemen, kunnen groepen 
worden opgezet (gedefinieerd in het bestand
<filename>/etc/group</filename>).  Wanneer een gebruikersnaam deelnemer
is van een groep, kan zij bestanden benaderen aangemaakt met dat
GID (in de veronderstelling dat de permissies 't toelaten).
</para>
</glossdef>
</glossentry>

<glossentry id="def-mta">
<glossterm>Mail Transfer Agent</glossterm>
<acronym>MTA</acronym>
<glossdef>
<para>
een programma zoals Sendmail, verantwoordelijk voor het doorgeven van mail
van de ene naar de andere lokatie.
</para>
</glossdef>
</glossentry>

<glossentry id="def-sgid">
<glossterm>Set Group ID</glossterm>
<acronym>SGID</acronym>
<glossdef>
<para>
een bestandskenmerk die een programma toestaat het uit te voeren met specifieke
groepsprivileges ongeacht wie het uitvoert.
</para>
</glossdef>
</glossentry>

<glossentry id="def-smrsh">
<glossterm><command>smrsh</command></glossterm>
<glossdef>
<para>
(SendMail Restricted SHell) de shell die Sendmail gebruikt om programma's
uit te voeren. <command>smrsh</command> plaatst beperkingen op de programma's
die kunnen worden uitgevoerd om het veiliger te maken dan een reguliere shell,
zoals de Bourne Shell.
</para>
</glossdef>
</glossentry>

<glossentry id="def-suid">
<glossterm>Set User ID</glossterm>
<acronym>SUID</acronym>
<glossdef>
<para>
een bestandskenmerk die een programma toelaat het als een specifieke gebruiker
uit te voeren ongeacht wie het uitvoert.
</para>
</glossdef>
</glossentry>

<glossentry id="def-uid">
<glossterm>User ID</glossterm>
<acronym>UID</acronym>
<glossdef>
<para>
een identificatienummer toegekend aan bestanden, directory's en processen,
vergelijkbaar met GID behalve dat elke gebruiker een uniek UID heeft.
Elk proces moet onder een UID worden uitgevoerd (de &eacute;&eacute;n-op-&eacute;&eacute;n relatie tussen de UID en de gebruikersnaam is gedefinieerd in
<filename>/etc/passwd</filename>). Het UID van het proces bepaalt wat het
proces kan benaderen. Over het algemeen kan een reguliere gebruiker
de permissies op bestanden wijzigen waarvan ze eigenaar is, tenzij de
UID gelijk is aan 0 (de <literal remap="tt">root</literal> gebruiker).  
In dat geval kan alleen <literal remap="tt">root</literal> bestanden op 
het systeem aanpassen.
</para>
</glossdef>
</glossentry>

<glossentry id="def-wrapper">
<glossterm>wrapper</glossterm>
<glossdef>
<para>
een programma dat wordt gebruikt om een ander programma op te starten;
gewoonlijk is een wrapper SUID of SGID zodat het privileges kan schenken
aan een ander programma die het andere programma normaal gesproken niet
zou hebben.
</para>
</glossdef>
</glossentry>
</glossary>
</article>

