co robi `adduser --disabled-login`?


16

Dokument instalacyjny, który obserwuję, instruuje, aby dodać takiego użytkownika:

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

--disabled-loginFlaga jest nieobecny z większości stron podręcznika Przeszukałem.

Zrobiłem dwóch użytkowników, jednego z --disabled-login( foo) i jednego bez ( git).

O ile wiem, --disabled-loginflaga nic nie robi. Nadal mogę sudla obu użytkowników i obaj używają /bin/bashich jako powłoki logowania.

Jedyna różnica, jaką widzę, to getent passwddodatkowe przecinki przed folderem domowym użytkownika, który wyłączył logowanie. Nie ma dokumentacji, która mogłabym znaleźć, aby wskazać, co to znaczy.

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

AKTUALIZACJA # 1

Znalazłem inną różnicę, jeden użytkownik ma *swoje hasło, drugi ma !:

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

Co dokładnie robi --disabled-loginna Ubuntu?


Dla przypomnienia, dodatkowe przecinki oddzielają pola w polu „gekony”: pełna nazwa, numer pokoju, telefon służbowy, telefon domowy. Nie wiem jednak, dlaczego byłyby obecne w jednej wersji, a nie w drugiej. Dokumentację na ten temat można znaleźć na stronie chfnnarzędzia.
Random832

To ma sens. Przypadkowo wybrałem „y”, gdy pojawi się monit o podanie tych informacji, gdy dodam jednego z użytkowników. Drugi użytkownik został dodany przez marionetkę.
spuder

Odpowiedzi:


17

Wyjaśnienie nie jest dobrze udokumentowane.

--disabled-login ustawia hasło na !

Wartości hasła

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

Przykłady

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 krótko to omawia. Wygląda na to, że * i! skutecznie rób to samo; uniemożliwić zalogowanie się użytkownika (ale nie rezygnację z konta innego użytkownika)


3

Jest to częściowo omówione tutaj na shadowstronie podręcznika .

fragment

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

W zależności od wersji strony man, do adduserktórej się tam odwołuje.

fragment strony 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.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.