Différence entre ! contre !! vs * dans / etc / shadow

38

Le deuxième champ du /etc/shadowfichier Linux représente un mot de passe. Cependant, nous avons constaté que:

  1. Certains des champs de mot de passe peuvent avoir une seule exclamation

    <account>:!:.....
    
  2. Certains champs de mot de passe peuvent avoir une double exclamation

    <account>:!!:.....
    
  3. Certains champs de mot de passe peuvent avoir un astérisque

    <account>:*:.....
    

Par quelques recherches sur Internet et à travers ce fil , je peux comprendre que le *mot de passe n’est jamais établi, il !est verrouillé.

Quelqu'un peut-il expliquer ce que signifie double exclamation ( !!)? et en quoi est-ce différent de ( !)?

JavaTec
la source
Quelle distribution utilisez-vous?
muru
Bonjour Muru, je suis nouveau sur Unix et j'essaie de créer un script qui fonctionnera sur RHEL 6.6 et HP-UX B.11.23
JavaTec
3
"Par convention, les comptes qui ne sont pas destinés à être connectés (par exemple, bin, daemon, sshd) ne contiennent qu'un seul astérisque dans le champ du mot de passe. Notez qu'il n'y a rien de spécial à propos de '*', ce n'est qu'un des nombreux caractères cela ne peut pas se produire avec un mot de passe crypté valide (voir crypt (3)). " - Page de manuel OpenBSD pour passwd (5) . Je m'attendrais! ou !! techniquement, que ce soit un fichier passwd valide ou des connexions. Cependant, certains outils peuvent avoir un support particulier.
TOOGAM
1
N'utilisez pas le doco des BSD comme référence pour cela. Leur base de données de comptes gère les choses différemment et ne possède même pas de /etc/shadowfichier. Ne mettez pas de réponses dans les commentaires non plus. ☺
JdeBP

Réponses:

31

Tous les deux "!" et "!!" être présent dans le champ mot de passe signifie qu'un compte est verrouillé.

Comme on peut le lire dans le document suivant, "!!" dans une entrée de compte dans shadow signifie que le compte d'un utilisateur a été créé, mais qu'aucun mot de passe n'a encore été attribué. Jusqu'à ce qu'un administrateur système lui donne un mot de passe initial, celui-ci est verrouillé par défaut.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/System_Administration_Guide/s2-redhat-config-users-process.html

Rui F Ribeiro
la source
4
Ceci est peut-être vrai sur les systèmes Red Hat, mais pas nécessairement ailleurs - sur Ubuntu ou Arch Linux, un compte nouvellement créé sans mot de passe n'en a toujours !pas !!.
muru
2
C'est vrai que je n'ai jamais vu un "!!" dans un système Debian. Je suppose que le PO utilise un système basé sur RH, ou SuSE.
Rui F Ribeiro
Merci pour vos réponses rapides, l’explication ci-dessus fournie par Rui - serait-elle valable aussi pour un hp-ux?
JavaTec
4
@JavaTec Pas nécessairement: je pense que tous les ordinateurs qui ont un /etc/shadowont le même champ, mais la façon dont le champ de mot de passe stocke les informations autres que le mot de passe varie. Consultez la documentation HP-UX, en commençant par la shadowpage de manuel.
Gilles, arrête de faire le mal
1
HP-UX n’avait même pas /etc/shadowjusqu’à récemment: avant HP-UX 11.11, les options étaient soit classiques sans ombre, /etc/passwdsoit "Trusted Computing Base", qui stockait les hachages de mots de passe et autres informations de compte de chaque utilisateur dans des fichiers individuels nommés /tcb/files/auth/<initial>/<username>, lisibles uniquement par root. Dans HP-UX 11.11, l’ /etc/shadowintroduction a été introduite en tant qu’extension facultative ; dans 11.23, c’était une option dans le système d’exploitation de base et, dans 11.31, le TCB était finalement obsolète.
telcoM
10

Il convient également de noter <account>::.....qu’il n’ya pas de mot de passe requis (mot de passe vide).

Si vous créez un utilisateur ssh uniquement, vous pouvez <account>::0:0:99999:7:::demander à l'utilisateur de définir son mot de passe (c'est-à-dire qu'il l'utilisera pour sudo) lors de sa première connexion.

CoolAJ86
la source
8
Attention à cela. Un champ vide signifie qu'il n'y a pas de mot de passe et il vous suffit d'appuyer sur ENTREE pour vous connecter, au moins dans la console.
Rui F Ribeiro
En man shadowce qui concerne le champ de mot de passe crypté: "Ce champ peut être vide. Dans ce cas, aucun mot de passe n'est requis pour s'authentifier en tant que nom de connexion spécifié." <- Si vous laissez ce champ vide, le compte sera ouvert et vous devriez éviter cela!
Laas
Notez que de nombreuses implémentations SSH bloquent la connexion sur les comptes avec mot de passe NULL par défaut: sudo /usr/sbin/sshd -T| grep emptyrenvoie: "permitemptypasswords no"
Brian Huntley