GNU/Linux >> Tutoriels Linux >  >> Linux

Trouver des comptes d'utilisateurs avec un mot de passe vide sous Linux

Le pire type de mot de passe n'est pas un mot de passe faible mais pas de mot de passe du tout. En tant qu'administrateur système, vous devez vous assurer que chaque compte d'utilisateur dispose d'un mot de passe fort. Ce bref tutoriel explique comment trouver des comptes d'utilisateurs avec un mot de passe vide sous Linux.

Avant d'entrer dans le sujet, récapitulons rapidement l'ombre fichier et son objectif.

Qu'est-ce qu'un fichier de mot de passe Shadow ?

Dans les systèmes RHEL, les mots de passe des utilisateurs sont hachés et stockés dans un fichier sécurisé appelé /etc/shadow . Le fichier de mots de passe cachés contient les détails d'authentification de l'utilisateur et de vieillissement du mot de passe des comptes d'utilisateurs.

Le fichier de mot de passe caché appartient à la root utilisateur et n'est lisible que par les super utilisateurs. Vous pouvez vérifier la propriété et l'autorisation du fichier shadow à l'aide de la commande suivante :

# ls -l /etc/shadow
---------- 1 root root 618 Apr  7 07:52 /etc/shadow

La structure typique d'un exemple de ligne du fichier shadow est donnée ci-dessous.

user1:$6$5ps/XV21$EFmQ463GJZnsdF/:19089:0:99999:7:::

Comme vous le savez peut-être déjà, le fichier fantôme contient neuf champs séparés par deux-points.

Examinons rapidement chaque champ.

  • Classé 1 (nom de connexion) - Celui-ci contient le nom de connexion (user1) tel qu'il apparaît dans le passwd fichier.
  • Classé 2 (Mot de passe crypté) - Ce fichier contient le mot de passe haché (crypté) de l'utilisateur. S'il y a un seul point d'exclamation (!) au début de ce fichier, cela signifie que le compte utilisateur est verrouillé. Si ce champ est vide, l'utilisateur n'a pas de mot de passe.
  • Fichier 3 (Dernière modification) - Ce champ indique le nombre de jours depuis l'époque Unix (c'est-à-dire l'heure Unix - 01 janvier 1970 00:00:00 UTC) lorsque le mot de passe a été modifié pour la dernière fois. Si ce champ contient 0, l'utilisateur est obligé de changer son mot de passe à la prochaine connexion.
  • Déposé 4 (minimum) - Ce champ indique le nombre minimum de jours (mindays) qui doivent s'écouler avant que l'utilisateur soit autorisé à changer son mot de passe. Vous pouvez modifier cette valeur de champ avec chage commande avec -m option.
  • Champ 5 (maximum) - Affiche le nombre maximum de jours (maxdays) de validité du mot de passe avant l'expiration du mot de passe de l'utilisateur. Si le champ est 0, cela signifie que cette fonctionnalité est désactivée. La valeur de ce champ peut être modifiée avec chage commande avec -M option.
  • Classé 6 (Avertissement) - Indique le nombre de jours (warndays) pendant lesquels l'utilisateur reçoit des avertissements pour avoir changé son mot de passe avant son expiration. Vous pouvez modifier cette valeur avec chage commande avec -W ou l'option passwd commande avec -w option.
  • Champ 7 (Expiration du mot de passe) - Définit le nombre maximal de jours autorisés pour que l'utilisateur puisse se connecter avec le mot de passe expiré. Cela peut être changé en utilisant chage commande avec -I flag ou passwd commande avec -i drapeau.
  • Champ 8 (Expiration du compte) - Définit le nombre de jours depuis l'heure UNIX lorsque le compte d'utilisateur expirera et ne sera plus disponible. Vous pouvez modifier la valeur de ce champ en utilisant chage commande avec -E option.
  • Champ 9 (Réservé) - Ce champ est réservé pour une utilisation future.

Comme mentionné ci-dessus, les mots de passe cryptés sont stockés dans le deuxième champ de chaque entrée du fichier de mots de passe cachés, juste après le nom d'utilisateur.

Ainsi, si le deuxième champ du fichier shadow est vide, l'utilisateur n'a pas de mot de passe. Permettez-moi de vous montrer un exemple pour trouver tous les comptes d'utilisateurs sans mot de passe.

Rechercher tous les comptes d'utilisateurs sans mot de passe sous Linux

Pour détecter tous les comptes d'utilisateurs locaux qui n'ont pas de mot de passe, exécutez simplement la commande suivante en tant que root utilisateur :

# awk -F: '$2 == "" { print $1, "has empty password!. Please set a strong password ASAP!!" }' /etc/shadow

Exemple de résultat :

ostechnix has empty password!. Please set a strong password ASAP!!

Vous pouvez également utiliser getent commande combinée avec grep et cut commandes pour identifier les comptes d'utilisateurs locaux sans mot de passe sous Linux.

# getent shadow | grep -Po '^[^:]*(?=::)'

Ou,

# getent shadow | grep '^[^:]*::' | cut -d: -f1

Toutes les commandes ci-dessus répertorieront uniquement les comptes d'utilisateurs locaux qui ont des mots de passe vides. Si vous souhaitez répertorier à la fois les comptes système et les comptes utilisateur avec un mot de passe vide, exécutez.

# getent shadow | grep -Po '^[^:]*(?=:.?:)'

Ou,

# getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

Rechercher un compte d'utilisateur spécifique sans mot de passe

Les commandes ci-dessus listeront tous les comptes locaux et système qui n'ont pas de mot de passe. Vous pouvez également vérifier l'état du mot de passe d'un compte utilisateur spécifique en utilisant passwd commande avec -S drapeau.

# passwd -S ostechnix

Exemple de résultat :

ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)

Le passwd Les commandes indiqueront l'état du mot de passe du compte d'utilisateur donné. Les valeurs possibles sont :

  • LK - Le compte utilisateur est verrouillé.
  • NP - Le compte utilisateur n'a pas de mot de passe.
  • PS - Le compte utilisateur a un mot de passe utilisable.

Attention : Dans les systèmes basés sur Debian, le statut du mot de passe sera noté L , N , P respectivement.

Définir le mot de passe utilisateur sous Linux

Vous pouvez vous connecter en tant qu'utilisateur sans mot de passe, c'est parfaitement bien. Cependant, ce n'est pas recommandé! Vous devez définir un mot de passe fort avec au moins 8 caractères dont une majuscule, des lettres minuscules, un caractère spécial et un chiffre.

Pour définir le mot de passe d'un compte utilisateur sous Linux, utilisez passwd commande en tant que root utilisateur comme ci-dessous.

En tant qu'utilisateur root :

# passwd ostechnix

Remplacez ostechnix par votre propre nom d'utilisateur.

Vérifiez maintenant l'état du mot de passe du compte utilisateur à l'aide de passwd commande :

# passwd -S ostechnix

Exemple de résultat :

ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)

Verrouiller les comptes utilisateur sous Linux

Parfois, vous souhaitez simplement verrouiller les comptes d'utilisateurs avec des mots de passe vides. Si c'est le cas, trouvez d'abord les utilisateurs avec des mots de passe vides comme décrit ci-dessus et verrouillez-les en utilisant passwd commande avec -l marquer comme root utilisateur comme ci-dessous.

# passwd -l ostechnix

Exemple de résultat :

Locking password for user ostechnix.
passwd: Success

Maintenant, vérifiez l'état du compte utilisateur :

# passwd -S ostechnix

Exemple de sortie :

ostechnix LK 2022-04-07 0 99999 7 -1 (Password locked.)

Voir? L'utilisateur a été verrouillé. Il ne peut plus se connecter au système.

Vous pouvez également utiliser le usermod commande avec -L (L majuscule) pour verrouiller un utilisateur.

# usermod -L ostechnix

Déverrouiller les comptes utilisateur sous Linux

Pour déverrouiller les utilisateurs sans mot de passe sous Linux, utilisez soit passwd commande ou usermod commande avec -p en tant que root utilisateur.

# passwd ostechnix

Entrez le mot de passe deux fois pour déverrouiller le mot de passe.

Déverrouillage de l'utilisateur avec un mot de passe vide avec usermod la commande n'est pas possible, vous devez définir un mot de passe avec usermod -p pour déverrouiller le mot de passe de l'utilisateur.

# usermod -p <password-here> ostechnix

Conclusion

Dans ce tutoriel, nous avons expliqué ce qu'est le fichier de mot de passe Shadow et le but de ce fichier sous Linux. Ensuite, nous avons discuté de diverses commandes pour trouver tous les comptes d'utilisateurs sans mot de passe sous Linux. Enfin, nous avons appris comment définir un mot de passe pour un utilisateur et également comment verrouiller et déverrouiller les utilisateurs sous Linux.


Linux
  1. Comment supprimer des comptes d'utilisateurs avec le répertoire personnel sous Linux

  2. Installer WordPress sur Linux avec Apache

  3. Définir ou modifier un mot de passe utilisateur sous Linux

  4. Comment autoriser ssh avec des mots de passe vides sous Linux

  5. Comment vérifier le mot de passe avec Linux?

Comment changer ou définir un mot de passe utilisateur sous Linux

Guide complet d'administration des utilisateurs sous Linux

Modifier les comptes d'utilisateurs avec la commande Usermod

Commande Linux passwd - Modifier le mot de passe utilisateur

Comment protéger GRUB avec un mot de passe sous Linux ?

Effectuer des réinitialisations de mot de passe Linux [étape par étape]