Shadow-4.0.4.1

Introduzione a Shadow

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.

Informazioni sul pacchetto

Download aggiuntivi

Dipendenze di Shadow

Necessaria

Linux-PAM-0.78

Installazione di Shadow

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

Spiegazioni dei comandi

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

Configurazione di Linux-PAM perché funzioni con Shadow

File di configurazione

/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

Informazioni di configurazione

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
[Nota]

Nota

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
[Avvertimento]

Avvertimento

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

Contenuti

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