Shadow per la verità è stata installata in LFS e non c'è ragione di reinstallarla a meno che non si installi Linux-PAM. Se lo si fa questo permetterà a programmi come login e su di usare PAM.
Download (FTP): ftp://ftp.pld.org.pl/software/shadow/old/shadow-4.0.4.1.tar.bz2
Download MD5 sum: 3a3d17d3d7c630b602baf66ae7434c61
Dimensione del download: 814 KB
Stima dello spazio su disco richiesto: 14.1 MB
Stima del tempo di costruzione: 0.42 SBU
Patch per correggere il link verso PAM: http://www.linuxfromscratch.org/blfs/downloads/6.0/shadow-4.0.4.1-pam-1.patch
Reinstallare Shadow eseguendo i seguenti comandi:
patch -Np1 -i ../shadow-4.0.4.1-pam-1.patch &&
LIBS="-lpam -lpam_misc" ./configure --libdir=/usr/lib \
--enable-shared --with-libpam --without-libcrack &&
echo '#define HAVE_SETLOCALE 1' >> config.h &&
sed -i '/extern char/d' libmisc/xmalloc.c &&
make
Ora, come utente root:
make install &&
mv /bin/sg /usr/bin &&
mv /bin/vigr /usr/sbin &&
mv /usr/bin/passwd /bin &&
rm /bin/groups &&
mv /usr/lib/lib{misc,shadow}.so.0* /lib &&
ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so &&
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so
--without-libcrack: questa opzione dice a Shadow di non usare libcrack. Ciò è desiderato perché Linux-PAM contiene già libcrack.
sed -i '/extern char/d' libmisc/xmalloc.c: questo corregge un problema di compilazione quando si usa GCC-3.4.x.
/etc/pam.d/login, /etc/pam.d/passwd, /etc/pam.d/su, /etc/pam.d/shadow, /etc/pam.d/useradd, e /etc/pam.d/chage – in alternativa, /etc/pam.conf
Aggiungere i seguenti file di configurazione di Linux-PAM a /etc/pam.d/ (o aggiungerli a /etc/pam.conf con in più il campo per il programma).
cat > /etc/pam.d/login << "EOF" # Begin /etc/pam.d/login auth requisite pam_securetty.so auth requisite pam_nologin.so auth required pam_env.so auth required pam_unix.so account required pam_access.so account required pam_unix.so session required pam_motd.so session required pam_limits.so session optional pam_mail.so dir=/var/mail standard session optional pam_lastlog.so session required pam_unix.so # End /etc/pam.d/login EOF cat > /etc/pam.d/passwd << "EOF" # Begin /etc/pam.d/passwd password required pam_unix.so md5 shadow # End /etc/pam.d/passwd EOF cat > /etc/pam.d/shadow << "EOF" # Begin /etc/pam.d/shadow auth sufficient pam_rootok.so auth required pam_unix.so account required pam_unix.so session required pam_unix.so password required pam_permit.so # End /etc/pam.d/shadow EOF cat > /etc/pam.d/su << "EOF" # Begin /etc/pam.d/su auth sufficient pam_rootok.so auth required pam_unix.so account required pam_unix.so session required pam_unix.so # End /etc/pam.d/su EOF cat > /etc/pam.d/useradd << "EOF" # Begin /etc/pam.d/useradd auth sufficient pam_rootok.so auth required pam_unix.so account required pam_unix.so session required pam_unix.so password required pam_permit.so # End /etc/pam.d/useradd EOF cat > /etc/pam.d/chage << "EOF" # Begin /etc/pam.d/chage auth sufficient pam_rootok.so auth required pam_unix.so account required pam_unix.so session required pam_unix.so password required pam_permit.so # End /etc/pam.d/chage EOF
Se è stata installata cracklib sostituire /etc/pam.d/passwd con il seguente:
cat > /etc/pam.d/passwd << "EOF" # Begin /etc/pam.d/passwd password required pam_cracklib.so \ retry=3 difok=8 minlen=5 dcredit=3 ocredit=3 ucredit=2 lcredit=2 password required pam_unix.so md5 shadow use_authtok # End /etc/pam.d/passwd EOF
A questo punto bisognerebbe fare un semplice test per vedere se Shadow funziona come previsto. Aprire un altro terminale e fare login come utente, quindi eseguire su verso root. Se non si vede alcun errore allora va tutto bene e si può procedere con il resto della configurazione. Se si sono ricevuti errori fermarsi ora e controllare attentamente i precedenti file manualmente. Se non si può trovare e correggere l'errore bisognerà ricompilare shadow sostituendo --with-libpam con --without-libpam nelle precedenti istruzioni. Se non si riesce a fare questo e l'errore rimane non si potrà accedere al proprio sistema.
Attualmente /etc/pam.d/other è configurato per permettere a chiunque con un account sulla macchina di usare programmi che non hanno un loro file specifico di configurazione. Dopo aver testato la corretta configurazione di Linux-PAM essa può essere cambiata con la seguente:
cat > /etc/pam.d/other << "EOF" # Begin /etc/pam.d/other auth required pam_deny.so auth required pam_warn.so account required pam_deny.so session required pam_deny.so password required pam_deny.so password required pam_warn.so # End /etc/pam.d/other EOF
Infine editare /etc/login.defs aggiungendo '#' all'inizio delle seguenti linee:
LASTLOG_ENAB MAIL_CHECK_ENAB PORTTIME_CHECKS_ENAB CONSOLE MOTD_FILE NOLOGINS_FILE PASS_MIN_LEN SU_WHEEL_ONLY MD5_CRYPT_ENAB CONSOLE_GROUPS ENVIRON_FILE
Questo ferma l'esecuzione di queste funzioni da parte di login, poiché esse saranno ora eseguite dai moduli PAM. Inoltre aggiungere un '#' all'inizio delle seguenti linee se si è installato cracklib:
OBSCURE_CHECKS_ENAB CRACKLIB_DICTPATH PASS_CHANGE_TRIES PASS_ALWAYS_WARN
Un elenco dei file installati con le loro brevi descrizioni può essere trovato presso ../../../../lfs/view/6.0/chapter06/shadow.html#contents-shadow.
Last updated on