Linux

您如何判斷使用者是否在 Linux 上“允許登錄”?

  • July 5, 2021

問題很簡單,我想列出所有可以登錄我係統的使用者帳戶,但我不確定 /etc/passwd 中的所有使用者是否都是“可以登錄”的使用者?

細節:

我可以看到 shell 設置為/usr/sbin/nologin/bin/falsein 的使用者/etc/passwd,這是否意味著他們無法登錄?

我也知道我可以將使用者的加密密碼設置為或*禁用帳戶,所以“禁用使用者”也應該被視為“無法登錄”使用者,對吧?!``/etc/shadow

這在很大程度上取決於您對“登錄”的定義——從技術上講,任何存在/etc/passwd&/etc/shadow中的使用者都是“有效使用者”,理論上可以在正確的情況下登錄。

您所說的方法分為以下幾大類:

  • 具有“鎖定”帳戶

的使用者 將密碼設置為*!或其他永遠不會匹配的雜湊值的使用者被“鎖定”(在 Sun 時代,慣例通常是*LK*,表示“鎖定”)。

這些使用者無法通過輸入密碼登錄,但他們仍然可以使用其他身份驗證機制(例如 SSH 密鑰)登錄。

  • 具有“非互動式”外殼

的使用者 帳戶具有“非互動式外殼”(/bin/false, /sbin/nologin)的使用者無法互動登錄——即他們無法獲得外殼提示來執行命令(這也阻止了 SSH如果使用者在系統上有 SSH 密鑰,則執行命令)。

這些使用者可能仍然能夠登錄以執行諸如閱讀/發送電子郵件(通過 POP/IMAP 和 SMTP AUTH)之類的操作。為永遠不需要使用 shell 的使用者(以及大多數“服務帳戶”)設置非互動式 shell 通常被認為是一種好的做法。

因此,根據您“能夠登錄”的標準,您可能需要檢查其中一項或兩項。

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