Contenu
Vous pouvez trouver une liste des fichiers installés ainsi que leurs descriptions courtes sur ../../../../lfs/view/systemd/chapter06/shadow.html#contents-shadow.
Shadow a effectivement été installé dans LFS et il n'y a aucune raison pour le réinstaller, sauf si vous avez installé CrackLib ou Linux-PAM après que votre système LFS ai été terminé. Si vous avez installé CrackLib après LFS, la réinstallation de Shadow activera le support des mots de passe renforcés. Si vous avez installé Linux-PAM, la réinstallation de Shadow permettra à des programmes tels que login et su d'utiliser PAM.
Ce paquet est connu pour se construire correctement sur une plateforme LFS-8.1.
Téléchargement (HTTP) : https://github.com/shadow-maint/shadow/releases/download/4.5/shadow-4.5.tar.xz
Somme de contrôle MD5 du téléchargement : c350da50c2120de6bb29177699d89fe3
Taille du téléchargement : 1.6 Mo
Estimation de l'espace disque requis : 31 Mo
Estimation du temps de construction : 0.2 SBU
Linux-PAM-1.3.0 ou CrackLib-2.9.6
Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/shadow
          Les commandes d'installation indiquées ci-dessous valent pour les installations où on a installé Linux-PAM (avec ou sans installation de CrackLib) et Shadow devra être réinstallé pour supporter l'installation de Linux-PAM.
            Si vous réinstallez Shadow pour
            offrir le support des mots de passe forts en utilisant la
            bibliothèque CrackLib sans
            utiliser Linux-PAM, assurez-vous
            d'ajouter le paramètre --with-libcrack au script
            configure
            ci-dessous et lancez aussi la commande suivante :
          
sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@' etc/login.defs
Réinstallez Shadow en lançant les commandes suivantes :
sed -i 's/groups$(EXEEXT) //' src/Makefile.in &&
find man -name Makefile.in -exec sed -i 's/groups\.1 / /'   {} \; &&
find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \; &&
find man -name Makefile.in -exec sed -i 's/passwd\.5 / /'   {} \; &&
sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD SHA512@' \
       -e 's@/var/spool/mail@/var/mail@' etc/login.defs &&
sed -i 's/1000/999/' etc/useradd                           &&
./configure --sysconfdir=/etc --with-group-name-max-length=32 &&
make
        Ce paquet n'est pas fourni avec une suite de tests.
          Maintenant, en tant qu'utilisateur root :
        
make install && mv -v /usr/bin/passwd /bin
sed -i 's/groups$(EXEEXT) //' src/Makefile.in : Cette commande est utilisée pour supprimer l'installation du programme groups vu qu'on préfère la version issue du paquet Coreutils installé avec LFS.
find man -name Makefile.in -exec ... {} \; : Cette commande est utilisée pour supprimer l'installation des pages de manuel groups pour que celles existantes et issues du paquet Coreutils ne soient pas remplacées.
          sed -i -e 's@#ENCRYPT_METHOD
          DES@ENCRYPT_METHOD SHA512@' -e 's@/var/spool/mail@/var/mail@'
          etc/login.defs : Au lieu d'utiliser la méthode
          'DES' par défaut, cette commande modifie l'installation pour
          utiliser la méthode plus sécurisée de hashage des mots de passe
          'SHA512', qui autorise aussi les mots de passe d'une longueur
          supérieure à huit caractères. Elle modifie aussi l'emplacement
          /var/spool/mail obsolète pour les
          boîtes aux lettres utilisateur qu'utilise Shadow par défaut en /var/mail.
        
sed -i 's/1000/999/' etc/useradd : Fait une modification mineure pour faire que l'ajout de l'utilisateur par défaut soit cohérent avec le fichier groups de LFS.
          --with-group-name-max-length=32 :
          Le nom d'utilisateur utilise au maximum 32 caractères. Faites la
          même chose pour le nom du groupe.
        
          mv -v /usr/bin/passwd
          /bin : Le programme passwd peut être nécessaire aux
          moments où le système de fichiers /usr n'est pas monté pour qu'il soit déplacé dans
          la partition racine.
        
          La configuration par défaut de Shadow pour l'outil useradd peut ne pas être
          désirable pour votre installation. Un paramètre par défaut a pour
          conséquence que useradd crée un fichier de boîte
          aux lettres pour chaque nouvel utilisateur créé. useradd donnera l'appartenance de
          groupe de ce fichier au groupe mail
          avec les droits 0660. Si vous préférerez que ces fichiers boîtes
          aux lettres ne soient pas créés par useradd, lancez la commande
          suivante en tant qu'utilisateur root :
        
sed -i 's/yes/no/' /etc/default/useradd
          Le reste de cette page est consacré à la configuration de Shadow pour fonctionner correctement avec Linux-PAM. Si vous n'avez pas installé Linux-PAM et si vous avez réinstallé Shadow pour supporter les mots de passe forts via la bibliothèque CrackLib, aucune configuration supplémentaire n'est nécessaire.
            /etc/pam.d/* or alternatively
            /etc/pam.conf, /etc/login.defs et /etc/security/*
          
La configuration de votre système pour utiliser Linux-PAM peut être une tâche complexe. Les informations ci-dessous fourniront un paramétrage de base pour que la fonctionnalité de connexion et de mot de passe de Shadow fonctionne bien avec Linux-PAM. Regardez les informations et les liens sur la page Linux-PAM-1.3.0 pour des informations de configuration supplémentaires. Pour des informations spécifiques à l'intégration de Shadow, Linux-PAM et CrackLib, vous pouvez visiter les liens suivants :
              Le programme login effectue actuellement
              beaucoup de fonctions que les modules Linux-PAM devraient maintenant gérer. La
              commande sed
              suivante va commenter les lignes adéquates dans /etc/login.defs et empêcher login d'effectuer ces
              fonctions (un fichier de sauvegarde appelé /etc/login.defs.orig est également créé pour
              préserver le contenu du fichier d'origine). Exécutez les
              commandes suivantes en tant qu'utilisateur root :
            
install -v -m644 /etc/login.defs /etc/login.defs.orig &&
for FUNCTION in FAIL_DELAY               \
                FAILLOG_ENAB             \
                LASTLOG_ENAB             \
                MAIL_CHECK_ENAB          \
                OBSCURE_CHECKS_ENAB      \
                PORTTIME_CHECKS_ENAB     \
                QUOTAS_ENAB              \
                CONSOLE MOTD_FILE        \
                FTMP_FILE NOLOGINS_FILE  \
                ENV_HZ PASS_MIN_LEN      \
                SU_WHEEL_ONLY            \
                CRACKLIB_DICTPATH        \
                PASS_CHANGE_TRIES        \
                PASS_ALWAYS_WARN         \
                CHFN_AUTH ENCRYPT_METHOD \
                ENVIRON_FILE
do
    sed -i "s/^${FUNCTION}/# &/" /etc/login.defs
done
          
              Comme indiqué précédemment dans les instructions pour
              Linux-PAM, Linux-PAM supporte deux méthodes de
              configuration. Les commandes ci-dessous supposent que vous avez
              choisi d'utiliser une configuration basée sur le répertoire, où
              chaque programme a son propre fichier de configuration. Vous
              pouvez éventuellement utiliser un seul fichier de configuration
              /etc/pam.conf en utilisant le
              texte de configuration des fichiers ci-dessous, en fournissant
              le nom du programme comme premier champ à chaque ligne.
            
              En tant qu'utilisateur root,
              remplacez les fichiers de configuration Linux-PAM suivants dans le répertoire
              /etc/pam.d/ (ou ajoutez le
              contenu du fichier /etc/pam.conf)
              en utilisant les commandes suivantes :
            
cat > /etc/pam.d/login << "EOF"
# Begin /etc/pam.d/login
# Set failure delay before next prompt to 3 seconds
auth      optional    pam_faildelay.so  delay=3000000
# Check to make sure that the user is allowed to login
auth      requisite   pam_nologin.so
# Check to make sure that root is allowed to login
# Disabled by default. You will need to create /etc/securetty
# file for this module to function. See man 5 securetty.
#auth      required    pam_securetty.so
# Additional group memberships - disabled by default
#auth      optional    pam_group.so
# include the default auth settings
auth      include     system-auth
# check access for the user
account   required    pam_access.so
# include the default account settings
account   include     system-account
# Set default environment variables for the user
session   required    pam_env.so
# Set resource limits for the user
session   required    pam_limits.so
# Display date of last login - Disabled by default
#session   optional    pam_lastlog.so
# Display the message of the day - Disabled by default
#session   optional    pam_motd.so
# Check user's mail - Disabled by default
#session   optional    pam_mail.so      standard quiet
# include the default session and password settings
session   include     system-session
password  include     system-password
# End /etc/pam.d/login
EOF
          cat > /etc/pam.d/passwd << "EOF"
# Begin /etc/pam.d/passwd
password  include     system-password
# End /etc/pam.d/passwd
EOF
          cat > /etc/pam.d/su << "EOF"
# Begin /etc/pam.d/su
# always allow root
auth      sufficient  pam_rootok.so
auth      include     system-auth
# include the default account settings
account   include     system-account
# Set default environment variables for the service user
session   required    pam_env.so
# include system session defaults
session   include     system-session
# End /etc/pam.d/su
EOF
          cat > /etc/pam.d/chage << "EOF"
# Begin /etc/pam.d/chage
# always allow root
auth      sufficient  pam_rootok.so
# include system defaults for auth account and session
auth      include     system-auth
account   include     system-account
session   include     system-session
# Always permit for authentication updates
password  required    pam_permit.so
# End /etc/pam.d/chage
EOF
          
for PROGRAM in chfn chgpasswd chpasswd chsh groupadd groupdel \
               groupmems groupmod newusers useradd userdel usermod
do
    install -v -m644 /etc/pam.d/chage /etc/pam.d/${PROGRAM}
    sed -i "s/chage/$PROGRAM/" /etc/pam.d/${PROGRAM}
done
            
              Comme l'installation de systemd n'est pas encore complète, vous
              devrez supprimer le fichier /run/nologin avant de tester l'installation.
              Exécutez la commande suivante en tant qu'utilisateur
              root :
            
rm -f /run/nologin
              
                À cette étape, vous devriez faire un simple test pour voir si
                Shadow fonctionne comme
                prévu. Ouvrez un autre terminal et connectez-vous en tant
                qu'utilisateur, puis su en root. Si vous ne voyez pas d'erreurs,
                tout va bien et vous devriez poursuivre le reste de la
                configuration. Si vous avez reçu des erreurs, arrêtez-vous
                maintenant et vérifiez à deux reprises les fichiers de
                configuration ci-dessus à la main. Vous pouvez aussi lancer
                la suite de tests à partir du paquet Linux-PAM pour vous aider à déterminer
                le problème. Si vous n'arrivez pas à trouver et à corriger
                l'erreur, vous devriez recompiler Shadow en ajoutant le paramètre
                --without-libpam à la commande
                configure dans
                les instructions ci-dessus (déplacez aussi le fichier de
                sauvegarde /etc/login.defs.orig
                dans /etc/login.defs). Si vous
                n'arrivez pas à faire cela et si les erreurs demeurent, vous
                ne pourrez pas vous connecter à votre système.
              
              Au lieu d'utiliser le fichier /etc/login.access pour contrôler l'accès au
              système, Linux-PAM utilise le
              module pam_access.so ainsi que le
              fichier /etc/security/access.conf. Renommez le
              fichier /etc/login.access en
              utilisant la commande suivante :
            
[ -f /etc/login.access ] && mv -v /etc/login.access{,.NOUSE}
          
              Au lieu d'utiliser le fichier /etc/limits pour limiter l'utilisation des
              ressources système, Linux-PAM
              utilise le module pam_limits.so
              ainsi que le fichier /etc/security/limits.conf. Renommez le
              fichier /etc/limits en utilisant
              la commande suivante :
            
[ -f /etc/limits ] && mv -v /etc/limits{,.NOUSE}
            
              Soyez certain de tester le login sur le système avant de le quitter. Des erreurs dans la configuration peuvent causer un blocage permanent demandant un démarrage depuis une source externe pour corriger le problème.
Vous pouvez trouver une liste des fichiers installés ainsi que leurs descriptions courtes sur ../../../../lfs/view/systemd/chapter06/shadow.html#contents-shadow.
Last updated on 2017-08-17 06:41:37 +0200