Que signifie * et! au deuxième champ de / etc / shadow?

19

Autant que je sache, le deuxième champ de / etc / shadow est le mot de passe crypté de l'utilisateur. Mais certains , par exemple l' utilisateur daemonutilisateur ont *dans le domaine, dans mon environnement (Ubuntu 12.04) rootont !sur le terrain.

Je suppose que cela !signifie que "tout le mot de passe est invalide, vous ne pouvez pas vous connecter avec cet utilisateur". Mais je n'ai pas pu trouver le document pour cela.

Qu'est-ce que signifie *et !dans le fichier de l'ombre?

fer à repasser
la source

Réponses:

22

'!' et '!!' signifient essentiellement la même chose, mais différents outils utilisent l’un ou l’autre, passwd -lpar exemple, utilisent une paire de points d’exclamation. usermod -Lpar contre n'en utilise qu'un.

Habituellement, les comptes avec '*' n'ont jamais eu de mot de passe (comme dans, ils ont toujours été désactivés pour la connexion). Ceci est différent d'un compte avec aucune entrée de hachage de mot de passe, auquel cas aucun mot de passe n'est nécessaire (et souvent même ne sera pas demandé) ce qui est presque toujours MAUVAIS!.

S'il s'agit d'un hachage non valide (que tous les '*', '!' Et '!!' sont), il verrouille le compte et empêche la connexion à ce compte. Ceci est souvent poursuivi en définissant le shell du compte sur quelque chose comme / bin / false ou / sbin / nologin dans le fichier / etc / passwd

Vous constaterez souvent que si le compte d'un utilisateur est verrouillé après avoir déjà défini un mot de passe valide, des points d'exclamation lui sont préfixés dans le hachage de mot de passe. Ainsi, lorsque le compte est déverrouillé, le mot de passe reprend son travail.

Sirex
la source
Merci pour votre explication détaillée. C'est très utile!
ironsand
2
aucun problème. Une chose que j’ai oublié de mentionner (mais qui sous-entendait) est d’être prudent en bloquant le compte avec passwd et en essayant de le déverrouiller avec usermod. Cela ne supprimera que le premier "!", Ce qui ne fonctionnera pas.
Sirex
2
La réponse n'est pas correcte à 100%. D'après mon expérience, si vous avez un astérisque *dans cette colonne, vous pouvez toujours vous connecter parfaitement en utilisant l'authentification par clé publique. Considérant qu’un !bloque vraiment toutes les connexions pour cet utilisateur.
Michael Härtl
2
cela dépend du réglage de "usepam" dans le fichier de configuration sshd. arlimus.github.io/articles/usepam
Sirex