是否可以通过 shell 脚本将用户添加到 sudoers 文件中? 我一直在四处寻找,仍然找不到任何东西。
最佳答案
您可以简单地 echo
(当然,具有提升的权限)直接到 /etc/sudoers
文件:
sudo -i
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
# ^^
# tab
(注意用户名和第一个 ALL
之间的制表符)
或者,对于脚本:
#!/bin/bash
# Run me with superuser privileges
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
然后保存到 somefile.sh
,chmod a+rx
它,然后从终端窗口运行 sudo ./somefile.sh
。
要添加多个用户,把脚本改成这样;
#!/bin/bash
while [[ -n $1 ]]; do
echo "$1 ALL=(ALL:ALL) ALL" >> /etc/sudoers;
shift # shift all parameters;
done
然后,像这样运行脚本(假设您将其保存为 addsudousers.sh
):
sudo ./addsudousers.sh bob joe jeff
即以空格分隔。
从文件中读取名字:
nickw444@laptop ~ $ sudo ./addsudousers.sh `cat listofusers.txt`
listofusers.txt
也应该以空格分隔。
编辑: Jappie Kirk rightly points out你不能直接调用 sudo echo ... >>/etc/sudoers
因为 >>>
重定向是由 shell 处理的,到那时它已经删除了 super 用户权限。但是,如果您运行包含 echo ... >>/etc/sudoers
的脚本并且该脚本本身具有 super 用户权限,那么一切都应该正常工作。
关于linux - 通过shell脚本添加用户到sudoers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784761/