Avanti Indietro Indice

4. Compilare i programmi

4.1 Spacchettare l'archivio

Il primo passo dopo aver ottenuto il pacchetto è spacchettarlo. Il pacchetto è nel formato tar (tape archive) e compresso usando gzip, perciò prima spostatelo in /usr/src, poi digitate:

tar -xzvf shadow-current.tar.gz

Questo lo spacchetterà nella directory: /usr/src/shadow-AAMMGG

4.2 Configurare con il file config.h

La prima cosa che avete bisogno di fare è sovrascrivere il Makefile e il file config.h:

cd /usr/src/shadow-AAMMGG
cp Makefile.linux Makefile
cp config.h.linux config.h

Dovreste poi dare un'occhiata al file config.h. Questo file contiene definizioni per alcune delle opzioni di configurazione. Se state usando il pacchetto consigliato, vi consiglio, almeno per la prima volta, di disabilitare il supporto per il gruppo shadow.

Come opzione predefinita, sono abilitate le password di gruppo "oscurate". Per disabilitarle, editate il file config.h, e cambiate il #define SHADOWGRP in #undef SHADOWGRP. 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, dovete creare il file /etc/gshadow.

Abilitare l'opzione per le password lunghe NON è raccomandato, come discusso sopra.

NON cambiate l'impostazione: #undef AUTOSHADOW

L'opzione AUTOSHADOW 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 getpwnam() da root, e in seguito riscrivere il campo modificato nel file /etc/passwd (con la password non più "oscurata"). 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 getpwnam() perché anche root potrebbe usare chfn e chsh).

Lo stesso avvertimento vale anche se state compilando libc, che ha un'opzione SHADOW_COMPAT che fa la stessa cosa. NON dovrebbe essere usata. Se cominciate a rimettere le password codificate nel vostro file /etc/passwd, questo è il problema.

Se state usando una versione di libc precedente alla 4.6.27, avrete bisogno di fare un paio di modifiche al config.h e al Makefile. Per il config.h editate e cambiate:

#define HAVE_BASENAME
in:
#undef HAVE_BASENAME
Poi, nel Makefile, cambiate:
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
in:
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
Questi cambiamenti aggiungono il codice contenuto in basename.c che è contenuto in libc 4.6.27 e successive.

4.3 Fare copie di backup dei vostri programmi originali

Sarebbe anche una buona idea rintracciare e fare copie di backup dei programmi che la Shadow Suite sostituirà. Su un sistema Slackware 3.0 questi sono:

Il pacchetto BETA ha una destinazione di salvataggio nel Makefile, ma è commentata perché distribuzioni diverse mettono i programmi in posti diversi.

Dovreste anche fare una copia di backup del vostro file /etc/passwd, ma state attenti a rinominarlo se lo mettete nella stessa directory così non sovrascriverete il comando passwd.

4.4 Eseguire il make

È necessario che siate collegati come root per fare la maggior parte dell'installazione.

Eseguite make per compilare gli eseguibili nel pacchetto:

make all

Potreste vedere l'avvertimento: rcsid defined but not used. È tutto a posto, succede solo perché l'autore sta usando un pacchetto con il controllo di versione.


Avanti Indietro Indice