Bash

如何驗證使用者是否有主目錄或密碼?

  • February 1, 2022

我在哪裡可以找到有關如何創建使用者的詳細資訊。使用者的目前狀態是什麼。

例如,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

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