Il existe plusieurs façons de verrouiller ou de désactiver un compte utilisateur. Les articles traitent de quelques-uns des moyens les plus largement utilisés.
1. Verrouillez le mot de passe
Pour verrouiller un compte utilisateur, utilisez la commande usermod -L ou passwd -l . Les deux commandes ajoutent un point d'exclamation ("!") dans le deuxième champ du fichier /etc/passwd . Par exemple :
# usermod -L testuser
ou
# passwd -l testuser
2. Faire expirer le compte utilisateur
Les commandes passwd -l et usermod -L sont inefficaces lorsqu'il s'agit de désactiver/verrouiller des comptes d'utilisateurs. Ces commandes n'interdiront pas l'authentification par clés publiques SSH (ou d'autres modules PAM autres que pam_unix qui peuvent être activés). De plus, changer le shell en /bin/false ou /sbin/nologin ne nous satisfait pas car cela n'affecte que les connexions interactives. Donc, pour désactiver complètement les comptes d'utilisateurs, vous pouvez utiliser la commande chage -E0 . Par exemple :
# chage -E0 testuser
Expiration d'un compte via l'utilisation du 8ème champ dans /etc/shadow (en utilisant "chage -E") bloquera toutes les méthodes d'accès qui utilisent PAM pour authentifier un utilisateur.
3. Changer la coque
Nous pouvons également changer le shell par défaut de l'utilisateur en /sbin/nologin afin que l'utilisateur ne reçoive aucun shell de connexion lorsqu'il tente de se connecter au système.
# usermod -s /sbin/nologin [username]
Vous pouvez vérifier le 7ème et dernier champ dans /etc/passwd pour le changement de shell en /sbin/nologin.
Vérifiez si le compte est verrouillé ou désactivé.
Pour chacune des méthodes décrites ci-dessus, vous pouvez vérifier si le compte utilisateur est verrouillé/désactivé en utilisant les méthodes ci-dessous.
Vérifiez le drapeau *LK* dans la sortie de commande ci-dessous qui indique que le compte est verrouillé.
# passwd --status root root *LK* 2017-07-19 0 45 7 -1 (Password set, SHA512 crypt.)
Vérifiez les lignes Le mot de passe expire et Le compte expire pour vérifier si le mot de passe du compte a expiré.
# chage -l root Last password change : Jul 19, 2017 Password expires : Sep 02, 2017 Password inactive : never Account expires : Sep 02, 2017 Minimum number of days between password change : 0 Maximum number of days between password change : 45 Number of days of warning before password expires : 7
Vérifiez si le shell utilisateur a été remplacé par un shell non interactif comme /sbin/nologin .
# grep ^root /etc/passwd root:x:0:0:root:/root:/sbin/nologin