Linux
您如何判斷使用者是否在 Linux 上“允許登錄”?
問題很簡單,我想列出所有可以登錄我係統的使用者帳戶,但我不確定 /etc/passwd 中的所有使用者是否都是“可以登錄”的使用者?
細節:
我可以看到 shell 設置為
/usr/sbin/nologin
和/bin/false
in 的使用者/etc/passwd
,這是否意味著他們無法登錄?我也知道我可以將使用者的加密密碼設置為或
*
禁用帳戶,所以“禁用使用者”也應該被視為“無法登錄”使用者,對吧?!``/etc/shadow
這在很大程度上取決於您對“登錄”的定義——從技術上講,任何存在於
/etc/passwd
&/etc/shadow
中的使用者都是“有效使用者”,理論上可以在正確的情況下登錄。您所說的方法分為以下幾大類:
- 具有“鎖定”帳戶
的使用者 將密碼設置為
*
、!
或其他永遠不會匹配的雜湊值的使用者被“鎖定”(在 Sun 時代,慣例通常是*LK*
,表示“鎖定”)。這些使用者無法通過輸入密碼登錄,但他們仍然可以使用其他身份驗證機制(例如 SSH 密鑰)登錄。
- 具有“非互動式”外殼
的使用者 帳戶具有“非互動式外殼”(
/bin/false
,/sbin/nologin
)的使用者無法互動登錄——即他們無法獲得外殼提示來執行命令(這也阻止了 SSH如果使用者在系統上有 SSH 密鑰,則執行命令)。這些使用者可能仍然能夠登錄以執行諸如閱讀/發送電子郵件(通過 POP/IMAP 和 SMTP AUTH)之類的操作。為永遠不需要使用 shell 的使用者(以及大多數“服務帳戶”)設置非互動式 shell 通常被認為是一種好的做法。
因此,根據您“能夠登錄”的標準,您可能需要檢查其中一項或兩項。