Useradd

adduser --disabled-login 有什麼作用?

  • October 21, 2013

我正在遵循的安裝文件指示添加這樣的使用者:

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

維基百科簡要介紹了這一點。看來 * 和 ! 有效地做同樣的事情;阻止使用者登錄(但不能從其他使用者那裡起訴)

引用自:https://unix.stackexchange.com/questions/96892