Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 1121

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Linux Shadow Password HOWTO: Compilare i programmi</TITLE>
<LINK HREF="Shadow-Password-HOWTO-5.html" REL=next>
<LINK HREF="Shadow-Password-HOWTO-3.html" REL=previous>
<LINK HREF="Shadow-Password-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="Shadow-Password-HOWTO-5.html">Avanti</A>
<A HREF="Shadow-Password-HOWTO-3.html">Indietro</A>
<A HREF="Shadow-Password-HOWTO.html#toc4">Indice</A>
<HR>
<H2><A NAME="s4">4. Compilare i programmi</A></H2>

<H2><A NAME="ss4.1">4.1 Spacchettare l'archivio</A>
</H2>

<P>Il primo passo dopo aver ottenuto il pacchetto &egrave; spacchettarlo. Il pacchetto &egrave; nel formato tar (tape archive) e compresso usando gzip, perci&ograve; prima spostatelo in <CODE>/usr/src</CODE>, poi digitate:
<BLOCKQUOTE><CODE>
<PRE>
tar -xzvf shadow-current.tar.gz
</PRE>
</CODE></BLOCKQUOTE>
<P>Questo lo spacchetter&agrave; nella directory: <CODE>/usr/src/shadow-AAMMGG</CODE>
<P>
<H2><A NAME="ss4.2">4.2 Configurare con il file config.h</A>
</H2>

<P>La prima cosa che avete bisogno di fare &egrave; sovrascrivere il <CODE>Makefile</CODE> e il file <CODE>config.h</CODE>:
<BLOCKQUOTE><CODE>
<PRE>
cd /usr/src/shadow-AAMMGG
cp Makefile.linux Makefile
cp config.h.linux config.h
</PRE>
</CODE></BLOCKQUOTE>
<P>Dovreste poi dare un'occhiata al file <CODE>config.h</CODE>. Questo file
contiene definizioni per alcune delle opzioni di configurazione. Se
state usando il pacchetto <EM>consigliato</EM>, vi consiglio, almeno
per la prima volta, di disabilitare il supporto per il gruppo shadow.
<P>Come opzione predefinita, sono abilitate le password di gruppo "oscurate". Per disabilitarle, editate il file <CODE>config.h</CODE>, e cambiate il <CODE>#define SHADOWGRP</CODE> in <CODE>#undef SHADOWGRP</CODE>. Consiglio di disabilitarle per iniziare, e poi se volete davvero le password di gruppo e gli amministratori di gruppo, li abiliterete in seguito e ricompilerete. Se le lasciate abilitate, <EM>dovete</EM> creare il file <CODE>/etc/gshadow</CODE>.
<P>Abilitare l'opzione per le password lunghe NON &egrave; raccomandato, come discusso sopra.
<P><EM>NON</EM> cambiate l'impostazione: <CODE>#undef AUTOSHADOW</CODE>
<P>L'opzione <CODE>AUTOSHADOW</CODE> era stata in origine progettata in modo
che i programmi che ignoravano la presenza delle shadow password
avrebbero continuato a funzionare. Questo in teoria suona bene, ma non
funziona correttamente. Se abilitate questa opzione, e il programma
viene eseguito da root, potrebbe chiamare <CODE>getpwnam()</CODE> da root,
e in seguito riscrivere il campo modificato nel file
<CODE>/etc/passwd</CODE> (con <EM>la password non pi&ugrave;
"oscurata"</EM>). Fanno parte di tali programmi chfn e chsh (non
potete aggirare questo problema semplicemente scambiando
l'identificativo utente reale con quello effettivo prima di chiamare
<CODE>getpwnam()</CODE> perch&eacute; anche root potrebbe usare chfn e
chsh). 
<P>Lo stesso avvertimento vale anche se state compilando libc, che ha
un'opzione <CODE>SHADOW_COMPAT</CODE> che fa la stessa cosa. <EM>NON
dovrebbe</EM> essere usata. Se cominciate a rimettere le password
codificate nel vostro file <CODE>/etc/passwd</CODE>, questo &egrave; il
problema. 
<P>Se state usando una versione di <CODE>libc</CODE> precedente alla 4.6.27, avrete bisogno di fare un paio di modifiche al <CODE>config.h</CODE> e al <CODE>Makefile</CODE>. 
Per il <CODE>config.h</CODE> editate e cambiate:
<BLOCKQUOTE><CODE>
<PRE>
#define HAVE_BASENAME
</PRE>
</CODE></BLOCKQUOTE>

in:
<BLOCKQUOTE><CODE>
<PRE>
#undef HAVE_BASENAME
</PRE>
</CODE></BLOCKQUOTE>

Poi, nel <CODE>Makefile</CODE>, cambiate:
<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 env.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>

in:
<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 env.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>

Questi cambiamenti aggiungono il codice contenuto in <CODE>basename.c</CODE> che &egrave; contenuto in <CODE>libc 4.6.27</CODE> e successive.
<P>
<H2><A NAME="ss4.3">4.3 Fare copie di backup dei vostri programmi originali</A>
</H2>

<P>Sarebbe anche una buona idea rintracciare e fare copie di backup dei programmi che la Shadow Suite sostituir&agrave;. Su un sistema Slackware 3.0 questi sono:
<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>/usr/bin/id</LI>
</UL>
<P>Il pacchetto BETA ha una destinazione di <EM>salvataggio</EM> nel Makefile, ma &egrave; commentata perch&eacute; distribuzioni diverse mettono i programmi in posti diversi.
<P>Dovreste anche fare una copia di backup del vostro file <CODE>/etc/passwd</CODE>, ma state attenti a rinominarlo se lo mettete nella stessa directory cos&igrave; non sovrascriverete il comando <CODE>passwd</CODE>.
<P>
<H2><A NAME="ss4.4">4.4 Eseguire il make</A>
</H2>

<P><EM>&Egrave; necessario che siate collegati come root per fare la maggior parte dell'installazione</EM>.
<P>Eseguite make per compilare gli eseguibili nel pacchetto:
<BLOCKQUOTE><CODE>
<PRE>
make all
</PRE>
</CODE></BLOCKQUOTE>
<P>Potreste vedere l'avvertimento: <CODE>rcsid defined but not
used</CODE>. &Egrave; tutto a posto, succede solo perch&eacute; l'autore
sta usando un pacchetto con il controllo di versione.
<P>
<HR>
<A HREF="Shadow-Password-HOWTO-5.html">Avanti</A>
<A HREF="Shadow-Password-HOWTO-3.html">Indietro</A>
<A HREF="Shadow-Password-HOWTO.html#toc4">Indice</A>
</BODY>
</HTML>