Bash
如何驗證使用者是否有主目錄或密碼?
我在哪裡可以找到有關如何創建使用者的詳細資訊。使用者的目前狀態是什麼。
例如,
adduser
命令可以使用--no-create-home
,--disabled-password
等執行--home DIR
。是否有任何命令可以告訴使用者是否有主目錄。如果它有主目錄,那麼目錄的位置是什麼。
或者使用者是否有密碼。
有關密碼條目的格式,請參閱
man 5 passwd
。每個使用者都有多個欄位,用冒號分隔。主目錄是第六個欄位,所以getent passwd user | cut -d: -f6
將顯示
user
的主目錄。這並不意味著該目錄存在;你需要單獨檢查。homedir="$(getent passwd user | cut -d: -f6)"; [ -d "$homedir" ] && printf "User %s's home directory is %s and exists.\n" user "$homedir"
密碼是第二個欄位。它通常是
x
,意味著密碼雜湊在 中/etc/shadow
,或者*
,意味著該帳戶的密碼訪問被禁用(*
也可以在 中找到/etc/shadow
)。您真的應該使用passwd
來確定一個帳戶是否被禁用;有關詳細資訊,請參閱此答案。[ "$(passwd -S user | cut -d\ -f2)" = P ] && printf "User %s has a password.\n" user