cosa fa `adduser --disabled-login`?


16

Un documento di installazione che sto seguendo indica di aggiungere un utente in questo modo:

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

La --disabled-loginbandiera è assente dalla maggior parte delle pagine man che ho cercato.

Ho creato due utenti, uno con --disabled-login( foo) e uno senza ( git).

Per quanto ne so, la --disabled-loginbandiera non fa nulla. Riesco ancora sua entrambi gli utenti ed entrambi usano /bin/bashcome shell di accesso.

L'unica differenza che riesco a vedere è che getent passwdsono presenti delle virgole aggiuntive prima che la cartella home dell'utente che ha il login sia disabilitato. Non c'è documentazione che posso trovare per indicare cosa significherebbe.

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

AGGIORNAMENTO N. 1

Ho trovato un'altra differenza, un utente ha *come password, l'altro ha !:

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

Cosa fa esattamente --disabled-loginsu Ubuntu?


Per la cronaca, le virgole aggiuntive separano i campi all'interno del campo "gecos": nome completo, numero della stanza, telefono di lavoro, telefono di casa. Non so perché sarebbero presenti in una versione e non nell'altra però. Puoi trovare la documentazione su questo nella manpage dello chfnstrumento.
Casuale 832,

Ha senso. Ho scelto accidentalmente 'y' quando mi veniva richiesto di inserire tali informazioni quando ho aggiunto uno degli utenti. L'altro utente è stato aggiunto tramite burattino.
spuder,

Risposte:


17

La spiegazione non è ben documentata.

--disabled-login imposta la password su !

Valori password

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

Esempi

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 lo copre brevemente. Sembra che * e! fare effettivamente la stessa cosa; impedire all'utente di accedere (ma non di fare causa a un altro utente)


3

È parzialmente discusso qui nella shadowpagina man.

estratto

$ 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.

A seconda della versione della pagina man per addusercui vi si fa riferimento.

estratto della pagina man 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.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.