如何验证用户是否有主目录或密码?

如何验证用户是否有主目录或密码?

在哪里可以找到有关如何创建用户的详细信息。用户当前的状态是什么。

例如,命令可以使用、等adduser来运行。--no-create-home--disabled-password--home DIR

是否有任何命令可以告诉用户是否有主目录。如果它有主目录,那么该目录的位置是什么。

或者用户是否有密码。

答案1

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

相关内容