Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 1261

howto-html-fr-9.0-0.2mdk.noarch.rpm

<HTML>
<HEAD>
<TITLE>Compiler les programmes.</TITLE>
</HEAD>
<BODY>
<H1>4. <A NAME="s4"></A>Compiler les programmes.</H1>
<P>
<A HREF="Shadow-Password-HOWTO.html#toc4">Contenu de cette section</A></P>

<H2>4.1 <A NAME="ss4.1"></A> Extraire l'archive</H2>

<P>La premi&egrave;re &eacute;tape apr&egrave;s avoir
r&eacute;cup&eacute;r&eacute; les paquetage est l'extraction 
de l'archive. C'est une archive de format tar et compress&eacute;e avec gzip.
Donc tout d'abord d&eacute;placez la vers <CODE>/usr/src</CODE>, et tapez:
<BLOCKQUOTE><CODE>
<PRE>
tar -xzvf shadow-current.tar.gz
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Ceci extraira l'ensemble dans le r&eacute;pertoire: <CODE>/usr/src/shadow-AAMMJJ</CODE></P>
<P></P>

<H2>4.2 <A NAME="ss4.2"></A> Configurer le fichier config.h</H2>

<P>La premi&egrave;re chose &agrave; faire est d'&eacute;craser les
fichiers <CODE>Makefile</CODE> et <CODE>config.h</CODE>:
<BLOCKQUOTE><CODE>
<PRE>
cd /usr/src/shadow-AAMMJJ
cp Makefile.linux Makefile
cp config.h.linux config.h
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Jetez un coup d'oeil au fichier <CODE>config.h</CODE>.
Ce fichier contient les d&eacute;finitions pour quelques options de configuration.
Si vous utilisez le paquetage shadow <EM>recommand&eacute;</EM>, je
vous recommande de d&eacute;valider le support de groupes <CODE>shadow</CODE>;
pour la premi&egrave;re fois.</P>
<P>Par d&eacute;faut les mots de passe pour les groupes cach&eacute;
sont valid&eacute;s. Pour les d&eacute;valider, &eacute;ditez le
fichier <CODE>config.h</CODE>, et remplacez <CODE>#define SHADOWGRP</CODE> en
<CODE>#undef SHADOWGRP</CODE>. Je recommande de commencer sans les groupes
cach&eacute;s, mais si vous souhaitez r&eacute;ellement des mots de
passe pour les groupes ainsi que des administrateurs de groupes vous
pourrez ult&eacute;rieurement valider l'option et recompiler le
tout. Si vous la laissez valid&eacute;e, vous devez cr&eacute;er le
fichier <CODE>/etc/gshadow</CODE>.</P>
<P>Valider l'option g&eacute;rant les longs mots de passe n'est pas recommand&eacute;e.</P>
<P><EM>Ne PAS changer</EM> le champ: <CODE>#undef AUTOSHADOW</CODE></P>
<P>L'option <CODE>AUTOSHADOW</CODE> &eacute;tait pr&eacute;vue pour que les programmes non
adapt&eacute;s aux mots de passe shadow puissent toujours
fonctionner. Cela para&icirc;t int&eacute;ressant en th&eacute;orie
mais ne fonctionne pas correctement. Si vous validez cette option, et
qu'un programme focntionne avec les droits de <CODE>root</CODE>, il se peut
qu'il utilise la fonction  <CODE>getpwnam()</CODE> avec les droits
<CODE>root</CODE>, et, plus tard, qu'il &eacute;crive la donn&eacute;e
modifi&eacute;e dans le fichier <CODE>/etc/passwd</CODE>. Il ne
poss&egrave;dera donc plus les propri&eacute;t&eacute;s <EM>shadow
passwords</EM>. <EM>chfn</EM> et <EM>chsh</EM> sont de tels programmes (Vous
pouvez passer outre en &eacute;changeant l'uid r&eacute;el 
et effectif avant d'appeler <CODE>getpwnam()</CODE> car <CODE>root</CODE> peut
utiliser <EM>chfn</EM> et <EM>chsh</EM> aussi).</P>
<P>Le m&ecirc;me avertissement est aussi valable si vous compilez la
<CODE>libc</CODE>. Il y a une option <CODE>SHADOW_COMPAT</CODE> qui fait la m&ecirc;me
chose. Elle ne <EM>doit PAS &ecirc;tre</EM> utilis&eacute;e! Si vous
commencez &agrave; remettre des mots de passe encod&eacute;s dans le
fichier <CODE>/etc/passwd</CODE>, cela pose un probl&egrave;me.</P>
<P>Si vous utilisez une <CODE>libc</CODE> de versions inf&eacute;rieure &agrave;
4.6.27, vous devriez faire un ou deux changements dans le fichier
<CODE>config.h</CODE> ainsi que dans le <CODE>Makefile</CODE>. En ce qui concerne le
fichier <CODE>config.h</CODE>, &eacute;ditez le et remplacez:
<BLOCKQUOTE><CODE>
<PRE>
#define HAVE_BASENAME
</PRE>
</CODE></BLOCKQUOTE>
 par
<BLOCKQUOTE><CODE>
<PRE>
#undef HAVE_BASENAME
</PRE>
</CODE></BLOCKQUOTE>

Dans le fichier <CODE>Makefile</CODE>, remplacez:
<BLOCKQUOTE><CODE>
<PRE>
SOBJS = smain.o env.o entry.o susetup.o shell.o \
        sub.o mail.o motd.o sulog.o age.o tz.o hushed.o

SSRCS = smain.c enc.c entry.c setup.c shell.c \
        pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
        tz.c hushed.c
</PRE>
</CODE></BLOCKQUOTE>
 par
<BLOCKQUOTE><CODE>
<PRE>
SOBJS = smain.o env.o entry.o susetup.o shell.o \
        sub.o mail.o motd.o sulog.o age.o tz.o hushed.o basename.o

SSRCS = smain.c enc.c entry.c setup.c shell.c \
        pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
        tz.c hushed.c basename.c
</PRE>
</CODE></BLOCKQUOTE>

Ce changement ajoute le code contenu dans <CODE>basename.c</CODE> qui est
contenu dans la <CODE>libc 4.6.27</CODE> ou plus.</P>
<P></P>

<H2>4.3 <A NAME="ss4.3"></A> Faire une copie de sauvegarde de vos programmes originaux.</H2>

<P>Faites une copie de sauvegarde des fichiers qui vont &ecirc;tre remplac&eacute;s par le kit
shadow. Sur un syst&egrave;me Slackware 3.0:
<UL>
<LI>/bin/su</LI>
<LI>/bin/login</LI>
<LI>/usr/bin/passwd</LI>
<LI>/usr/bin/newgrp</LI>
<LI>/usr/bin/chfn</LI>
<LI>/usr/bin/chsh</LI>
<LI>/bin/id</LI>
</UL>
</P>
<P>Le paquetage b&eacute;ta poss&egrave;de une cible <EM>save</EM> dans le
<CODE>Makefile</CODE>, mais elle est comment&eacute;e car les
diff&eacute;rentes distributions placent ces programmes &agrave;
diff&eacute;rents endroits.</P>
<P>Vous devriez aussi faire une copie de sauvegarde du fichier
<CODE>/etc/passwd</CODE>, mais faites attention &agrave; le nommer
diff&eacute;remment de fa&ccedil;on &agrave; ne pas &eacute;craser l'original.</P>
<P></P>

<H2>4.4 <A NAME="ss4.4"></A> Lancer make</H2>

<P><EM>Vous avez besoin d'&ecirc;tre <SF>root</SF> pour la plupart de
l'installation</EM></P>
<P>Lancez make pour compiler les ex&eacute;cutables du paquetage.
<BLOCKQUOTE><CODE>
<PRE>
make all
</PRE>
</CODE></BLOCKQUOTE>

Vous pourrez voir les avertissements suivants: <CODE>rcsid defined but
not used</CODE>. Ce n'est rien, il survient seulement parce que l'auteur
utilise un paquetage de contr&ocirc;le de version.</P>
<P></P>

<HR>
<P>
Chapitre <A HREF="Shadow-Password-HOWTO-5.html">suivant</A>,
Chapitre <A HREF="Shadow-Password-HOWTO-3.html">Pr&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="Shadow-Password-HOWTO.html#toc4">ce chapitre</A>,
 <A HREF="Shadow-Password-HOWTO.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="Shadow-Password-HOWTO.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>