shadow-4.0.4.1

Introduction à Shadow

Shadow a cependant besoin d'être installé dans LFS et il n'y a aucune raison de le réinstaller sauf si vous avez installé Linux-PAM. Si c'est votre cas, ceci permettra aux programmes comme login et su d'utiliser PAM.

Téléchargements supplémentaires

Dépendances de Shadow

Installation de shadow pour utiliser PAM

Réinstallez shadow en lançant les commandes suivantes:

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 &&
make &&
make install &&
mv /bin/sg /usr/bin &&
mv /bin/vigr /usr/sbin &&
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

Explication des commandes

--without-libcrack : cette option indique à shadow de ne pas utiliser libcrack. Ceci est voulu car Linux-PAM contient déjà libcrack.

Configurer PAM pour fonctionner avec shadow

Fichiers de configuration

/etc/pam.d/login, /etc/pam.d/passwd, /etc/pam.d/su, /etc/pam.d/shadow et /etc/pam.d/useradd

Informations de configuration

Ajoutez les fichiers de configuration PAM suivants dans /etc/pam.d (ou ajoutez-les dans /etc/pam.conf avec le champ additionnel pour le programme).

cat > /etc/pam.d/login << "EOF"
# Début /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

# Fin /etc/pam.d/login
EOF
cat > /etc/pam.d/passwd << "EOF"
# Début /etc/pam.d/passwd

password    required       pam_unix.so     md5 shadow 

# Fin /etc/pam.d/passwd
EOF
cat > /etc/pam.d/shadow << "EOF"
# Début /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

# Fin /etc/pam.d/shadow
EOF
cat > /etc/pam.d/su << "EOF"
# Début /etc/pam.d/su

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so

# Fin /etc/pam.d/su
EOF
cat > /etc/pam.d/useradd << "EOF"
# Début /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

# Fin /etc/pam.d/useradd
EOF
cat > /etc/pam.d/chage << "EOF"
# Début /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

# Fin /etc/pam.d/chage
EOF

Actuellement, /etc/pam.d/other est configuré pour permettre à ceux disposant d'un compte sur la machine d'utiliser les programmes qui n'ont pas un fichier de configuration spécifique. Après avoir testé PAM pour vérifier que sa configuration est correcte, il peut être changé par ceci:

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

Enfin, éditez /etc/login.defs en ajoutant '#' au début des lignes suivantes:

DIALUPS_CHECK_ENAB
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

Ceci fait que login arrête de réaliser ces fonctions, car elles seront maintenant réalisées par les modules PAM.