我正在为Ubuntu终端制作一个bash脚本。我需要在代码可以继续之前验证用户。如何询问并验证其现有的登录密码?
答案 0 :(得分:2)
您可以随时使用id
命令并执行以下操作:
user=$(id -u) # Set $user to user's user id
如果您在脚本中执行此操作,则可以检查$user
是否为有效的用户ID。您可以在/etc/group
文件中查看用户名和ID。当然,这不是验证用户的密码。相反,这只是检查运行脚本的用户的ID。
答案 1 :(得分:1)
getent shadow | cut -d ":" -f 2
如果返回!!
,则不设置密码,否则,用户有密码。
在此之后,我们可以做到:
#!/bin/bash
for user in $(getent shadow | cut -d ":" -f 1);
do
has_pass=$(getent shadow | grep $user | cut -d ":" -f 2)
if [ $has_pass = "!!" ]; then
echo "User $user does not have password"
else
echo "User $user has password"
fi
done
无论如何,下次,至少,在询问之前尝试做点什么。