que fait `adduser --disabled-login`?


16

Un document d'installation que je suis suit demande d'ajouter un utilisateur comme ceci:

sudo adduser --disabled-login --gecos 'GitLab' git

Le --disabled-logindrapeau est absent de la plupart des pages de manuel que j'ai recherchées.

J'ai créé deux utilisateurs, l'un avec le --disabled-login( foo) et l'autre sans ( git).

Autant que je sache, le --disabled-logindrapeau ne fait rien. Je peux toujours supour les deux utilisateurs, et les deux utilisent /bin/bashcomme shell de connexion.

La seule différence que je peux voir est qu'il y getent passwda des virgules supplémentaires avant le dossier de départ de l'utilisateur dont la connexion est désactivée. Il n'y a aucune documentation que je puisse trouver pour indiquer ce que cela signifierait.

root@gitlab:~# getent passwd git
git:x:998:998:GitLab:/home/git:/bin/bash  

root@gitlab:~# getent passwd foo
foo:x:1001:1002:GitLab,,,:/home/foo:/bin/bash

MISE À JOUR # 1

J'ai trouvé une autre différence, un utilisateur a un *mot de passe, l'autre a !:

root@gitlab:~# getent shadow git
git:*:15998::::::
root@gitlab:~# getent shadow foo
foo:!:15998:0:99999:7:::

Que fait exactement --disabled-loginUbuntu?


Pour mémoire, les virgules supplémentaires séparent les champs du champ "gecos": nom complet, numéro de chambre, téléphone professionnel, téléphone personnel. Je ne sais pas pourquoi ils seraient présents dans une version et pas dans l'autre cependant. Vous pouvez trouver de la documentation à ce sujet dans la page de manuel de l' chfnoutil.
Random832

Ça a du sens. J'ai accidentellement choisi «y» lorsque je suis invité à entrer ces informations lorsque j'ai ajouté l'un des utilisateurs. L'autre utilisateur a été ajouté via marionnette.
spuder

Réponses:


17

L'explication n'est pas bien documentée.

--disabled-login définit le mot de passe sur !

Valeurs de mot de passe

NP or null = The account has no password
*  = The account is deactivated & locked
!  = The login is deactivated, user will be unable to login
!!  = The password has expired

Exemples

root@gitlab:~# getent shadow vagrant
vagrant:$6$abcdefghijklmnopqrstuvwxyz/:15805:0:99999:7:::

root@gitlab:~# getent shadow foo
foo:!:15998:0:99999:7:::

root@gitlab:~# getent shadow git
git:*:15998::::::

wikipedia couvre brièvement cela. Il semble que * et! faire effectivement la même chose; empêcher l'utilisateur de se connecter (mais pas de poursuivre d'un autre utilisateur)


3

Il est partiellement discuté ici dans la shadowpage de manuel.

extrait

$ man shadow
...
...
encrypted password
     Refer to crypt(3) for details on how this string is interpreted.

     If the password field contains some string that is not a valid result of 
     crypt(3), for instance ! or *, the user will not be able to use a unix
     password to log in (but the user may log in the system by other means).

     This field may be empty, in which case no passwords are required to 
     authenticate as the specified login name. However, some applications which
     read the /etc/shadow file may decide not to permit any access at all if the
     password field is empty.

     A password field which starts with a exclamation mark means that the 
     password is locked. The remaining characters on the line represent the 
     password field before the password was locked.

En fonction de votre version de la page de manuel car adduserelle y est référencée.

extrait de la page de manuel adduser

--disabled-login
       Do  not  run passwd to set the password.  The user won't be able
       to use her account until the password is set.

--disabled-password
       Like --disabled-login, but logins are still possible (for  exam-
       ple using SSH RSA keys) but not using password authentication.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.