【问题标题】:how to verify some user in sudoers when we add user using Shell script AIX Unix?当我们使用 Shell 脚本 AIX Unix 添加用户时,如何验证 sudoers 中的某些用户?
【发布时间】: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,我会先学习如何评论抱歉。但我已经尝试过但失败了。

标签: shell unix aix


【解决方案1】:

你可以使用

getent password <username>

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

sudo -U <username> -l

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

【讨论】:

    猜你喜欢
    • 2012-02-05
    • 2013-02-05
    • 2017-07-26
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    相关资源
    最近更新 更多