![在脚本中以 root 身份运行一个命令](https://linux22.com/image/223331/%E5%9C%A8%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%BB%A5%20root%20%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4.png)
我有一个脚本,我希望每个人(世界)都能够执行。但是,脚本中的一行需要 root 权限才能正常运行。
我怎样才能让这个脚本适用于每个人,而不需要任何人输入 root 凭据?如果我在命令前面加上 sudo,那么我假设每个用户都会被提示输入 root 凭据。
#!/bin/bach
echo "works fine"
sudo rootonlycommand
echo "works fine"
答案1
sudo
允许条目/etc/sudoers
有一个NOPASSWD:
选项。它还允许ALL
成为源用户。
所以像这样的条目
ALL ALL=(root) NOPASSWD: /bin/id
id
允许任何人无需密码即可运行该命令。
$ sudo -k -K
$ sudo /bin/id
uid=0(root) gid=0(root) groups=0(root)
$