wch*_*gin 46
您可以直接echo(通过提升权限)直接访问该/etc/sudoers文件:
sudo -i
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
# ^^
# tab
Run Code Online (Sandbox Code Playgroud)
(注意用户名和第一个之间的制表符ALL)
或者,对于脚本:
#!/bin/bash
# Run me with superuser privileges
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
然后保存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
Run Code Online (Sandbox Code Playgroud)
然后,像这样运行脚本(假设你保存为addsudousers.sh):
sudo ./addsudousers.sh bob joe jeff
Run Code Online (Sandbox Code Playgroud)
也就是说,空间分隔.
要从文件中读取名称:
nickw444@laptop ~ $ sudo ./addsudousers.sh `cat listofusers.txt`
Run Code Online (Sandbox Code Playgroud)
listofusers.txt 也应该是空间分隔的.
编辑: Jappie Kirk 正确地指出你不能直接调用sudo echo ... >> /etc/sudoers因为>>重定向是由shell处理的,到那时它已经删除了超级用户权限.但是,如果您运行包含echo ... >> /etc/sudoers的脚本并且脚本本身具有超级用户权限,那么一切都应该正常工作.
不,直接回声不起作用,你必须在子shell中运行它.试试这个:
sudo sh -c "echo \"group ALL=(user) NOPASSWD: ALL\" >> /etc/sudoers"
| 归档时间: |
|
| 查看次数: |
56297 次 |
| 最近记录: |