【发布时间】: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,我会先学习如何评论抱歉。但我已经尝试过但失败了。