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