如何使用shell脚本验证用户的密码?

时间:2016-04-16 19:39:32

标签: linux bash shell ubuntu scripting

我正在为Ubuntu终端制作一个bash脚本。我需要在代码可以继续之前验证用户。如何询问并验证其现有的登录密码?

2 个答案:

答案 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

无论如何,下次,至少,在询问之前尝试做点什么。