shell - 当我们使用 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
解决方案
您可以使用
getent password <username>
检查系统中是否存在用户。有命令
sudo -U <username> -l
将根据/etc/sudoers
文件列出用户权限,如果用户已经在 sudo 中,可用于获取信息
推荐阅读
- image - 如何输出层叠图像或堆叠图像
- javascript - 事件处理程序/侦听器对 Javascript/Html 无响应
- c# - 转换 JSON 数组的格式
- python - 无法获取在 BASH 中定义并导出以在 Python 中显示的环境变量
- python - 如何使用 matplotlib 绘制带有斜线网格的散点图?
- excel - 使用公式加速 If Then 语句的 VBA 代码
- javascript - 如何确保我的 log4j 在我的单元测试中被调用一次
- c# - 如何解析 ModelBindingExecutionContext 是一种类型,但像变量一样使用
- python - Pandas 数据框到 numpy 数组
- python - python 3,OSError:[Errno 22] 无效参数: