Login

如何檢查外殼是否未設置為 /sbin/nologin 或 /bin/false

  • May 13, 2015

嘗試遵循此解決方案:https ://serverfault.com/a/384811

但無法執行這些最後步驟:“另外,請檢查 shell 是否未設置為 /sbin/nologin 或 /bin/false,這也會阻止登錄,即使身份驗證成功。”

我正在使用 lubuntu 恢復外殼。我應該如何進行?我對這一切都有初步的了解。泰

“另外,請檢查 shell 是否未設置為 /sbin/nologin 或 /bin/false,即使身份驗證成功,這也會阻止登錄。”

在您提供的連結中,以上是指/etc/passwd文件。

/etc/passwd文件格式如下:

  1. 使用者名:使用者登錄時使用。長度應在 1 到 32 個字元之間。
  2. 密碼:x 字元表示加密的密碼儲存在 /etc/shadow 文件中。
  3. 使用者 ID (UID):必須為每個使用者分配一個使用者 ID (UID)。UID 0(零)為 root 使用者保留,UID 1-99 為其他預定義帳戶保留。進一步的 UID 100-999 由系統保留用於管理和系統帳戶/組。
  4. 組 ID (GID):主要組 ID(儲存在 /etc/group 文件中)
  5. 使用者 ID 資訊:評論欄位。它允許您添加有關使用者的額外資訊,例如使用者的全名、電話號碼等。此欄位由手指命令使用。
  6. 主目錄:使用者登錄時所在目錄的絕對路徑。如果此目錄不存在,則使用者目錄變為 /
  7. 命令/shell:命令或 shell (/bin/bash) 的絕對路徑。通常,這是一個外殼。請注意,它不必是外殼。

在這裡,您對最後一個參數感興趣:Command/shell

如果您覺得這很有趣/sbin/nologin,這裡是和之間的區別/bin/false

當 /sbin/nologin 設置為 shell 時,如果使用該 shell 的使用者登錄,他們將收到一條禮貌的消息,說“此帳戶目前不可用。”。可以使用文件 /etc/nologin.txt 更改此消息。

/bin/false 只是一個立即退出的二進製文件,在呼叫時返回 false,因此當 shell 為 false 的人登錄時,當 false 退出時他們會立即註銷。


因此,基本上,只需簽入/etc/passwd您沒有/sbin/nologin/bin/false在最後一個欄位中為您需要的使用者定義的文件。

(嗯,不知道為什麼我寫了這樣一個答案,因為我最初的評論應該足夠了,但那是……)

引用自:https://serverfault.com/questions/691829