检查用户是否存在并属于组

时间:2021-01-07 21:58:44

标签: linux bash if-statement

我想在运行命令之前检查三个条件:如果字符串(用户名)与正则表达式匹配,用户是否存在并且用户是否属于某个组:

facet()

以上代码仅部分工作。它会检查正则表达式和组,但即使用户不存在,它也会尝试更改密码。

1 个答案:

答案 0 :(得分:0)

正确的解决方案是:

while true
do
  echo -ne "username: "; read USER_NAME
    if [[ "$USER_NAME" =~ ^[a-z_][a-z0-9_]*[$]?$ ]]
      then
        if [[ `getent group $USER_GROUP | grep -w -c "$USER_NAME"` -eq 1 ]]
          then
            break
          else
            echo "User not in the right group"
          fi
        else
          echo "Invalid characters"
      fi
done
相关问题