当我们使用 Shell 脚本 AIX Unix 添加用户时,如何验证 sudoers 中的某些用户?

Posted

技术标签:

【中文标题】当我们使用 Shell 脚本 AIX Unix 添加用户时,如何验证 sudoers 中的某些用户?【英文标题】:how to verify some user in sudoers when we add user using Shell script AIX Unix? 【发布时间】:2020-05-23 04:52:47 【问题描述】:

我想问一下如何验证文件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

【问题讨论】:

使用getent password "$i"grep "^$i:" /etc/passwd先查看用户是否存在。如果用户这样做,则继续循环。 @bishop,我会先学习如何评论抱歉。但我已经尝试过但失败了。 【参考方案1】:

你可以使用

getent password <username>

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

sudo -U <username> -l

将根据/etc/sudoers 文件列出用户权限,并可用于获取用户是否已在 sudo 中的信息

【讨论】:

以上是关于当我们使用 Shell 脚本 AIX Unix 添加用户时,如何验证 sudoers 中的某些用户?的主要内容,如果未能解决你的问题,请参考以下文章

Unix(AIX) set命令

AIX shell 脚本中的日期操作

AIX 中的剪切命令

Linux/hp unix/AIX日常巡检脚本(转)

在 AIX 上运行 Linux Shell

Linux/AIX/HP-UNIX监控磁盘脚本