Useradd
adduser --disabled-login
有什麼作用?
我正在遵循的安裝文件指示添加這樣的使用者:
sudo adduser --disabled-login --gecos 'GitLab' git
--disabled-login
我搜尋過的大多數手冊頁中都沒有該標誌。我創建了兩個使用者,一個帶
--disabled-login
(foo
),一個不帶 (git
)。據我所知,
--disabled-login
國旗什麼也沒做。我仍然可以su
對兩個使用者,並且都/bin/bash
用作他們的登錄 shell。我能看到的唯一區別是
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
我發現了另一個不同之處,一個使用者
*
的密碼是a,另一個使用者的密碼是!
:root@gitlab:~# getent shadow git git:*:15998:::::: root@gitlab:~# getent shadow foo foo:!:15998:0:99999:7:::
--disabled-login
在 Ubuntu 上到底做了什麼?
解釋沒有很好的記錄。
–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::::::
維基百科簡要介紹了這一點。看來 * 和 ! 有效地做同樣的事情;阻止使用者登錄(但不能從其他使用者那裡起訴)