що робить `adduser -disabled-login`?


16

Документ про встановлення, який я слідую, вказує додати користувача, як це:

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

--disabled-loginПрапор відсутня більшість сторінок керівництва я шукав.

Я створив двох користувачів, одного з --disabled-login( foo) і одного без ( git).

Наскільки я можу сказати, --disabled-loginпрапор нічого не робить. Я все ще можу suобом користувачам і обох використовувати /bin/bashяк оболонку входу.

Єдина відмінність, яку я бачу, - getent passwdце додаткові коми перед домашньою папкою користувача, у якої вхід не вимкнено. Немає жодної документації, яка б могла знайти, щоб вказати, що це означало б.

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

ОНОВЛЕННЯ №1

Я знайшов ще одну різницю, один користувач має *свій пароль, а інший !:

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

Що саме робить --disabled-loginUbuntu?


Для запису додаткові коми відокремлюють поля в полі "gecos": повне ім'я, номер кімнати, робочий телефон, домашній телефон. Я не знаю, чому вони будуть присутні в одній версії, а не в іншій. Ви можете знайти документацію про це на сторінці chfnінструменту.
Випадково832

Що має сенс. Я випадково вибрав "y", коли запропонували ввести цю інформацію, коли я додав одного з користувачів. Іншого користувача додали через лялечку.
спудер

Відповіді:


17

Пояснення недостатньо задокументовано.

--disabled-login встановлює пароль !

Значення пароля

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

Приклади

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::::::

Вікіпедія коротко висвітлює це. Здається, що * і! ефективно робити те саме; не дозволяти користувачеві входити (але не вимагати від іншого користувача)


3

Це частково обговорюється тут на shadowсторінці man.

витяг

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

Залежно від вашої версії чоловічої сторінки, на яку 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.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.