首页 > 解决方案 > 当我们使用 Shell 脚本 AIX Unix 添加用户时,如何验证 sudoers 中的某些用户?

问题描述

我想问一下如何验证文件sudoers中已经存在的列表中的用户,如果sudoers中已经存在,脚本不会再次添加用户。

adduser.sh 脚本如下:

# List user using another file (name file is users)
for i in $(cat users); do
# add user from list user file
useradd $i
# Change inital Program /usr/bin/ksh to /usr/bin/ksh93
chsh $i /usr/bin/ksh93
echo "user $i added successfully!"
# add user to file sudoers
echo $i 'ALL=(ALL)    NOPASSWD: ALL' >> /HAapps/sudoers

# create user password and adding 123
echo $i:$i"123" | chpasswd
echo "Password for user $i changed successfully"
done

在我运行脚本两次 adduser.sh 后,有如下信息:

3004-689 User "swakus1" exists.
user swakus1 added successfully!
Password for user swakus1 changed successfully

sudoers 文件中的结果如下:

swakus1 ALL=(ALL)    NOPASSWD: ALL
swakus2 ALL=(ALL)    NOPASSWD: ALL
swakus3 ALL=(ALL)    NOPASSWD: ALL
ario1 ALL=(ALL)    NOPASSWD: ALL
ario2 ALL=(ALL)    NOPASSWD: ALL
swakus1 ALL=(ALL)    NOPASSWD: ALL
swakus2 ALL=(ALL)    NOPASSWD: ALL
swakus3 ALL=(ALL)    NOPASSWD: ALL
ario1 ALL=(ALL)    NOPASSWD: ALL
ario2 ALL=(ALL)    NOPASSWD: ALL

标签: shellunixaix

解决方案


您可以使用

getent password <username>

检查系统中是否存在用户。有命令

sudo -U <username> -l

将根据/etc/sudoers文件列出用户权限,如果用户已经在 sudo 中,可用于获取信息


推荐阅读