执行shell脚本时,
sudo
如何参与以下操作?# script.sh
ls /root
sudo ls /root
现在,如果我运行$ sudo ./script.sh
或者$ ./script.sh
,会有什么区别?例如:
sudo ./script.sh
所运行的所有命令都会自动添加 "sudo" 前缀吗?sudo ls /root
这行命令是否有效?或者应该使用ls /root
并需要 root 调用?
基本上,我正在尝试弄清楚以 sudo 权限运行单个命令与以 sudo 权限运行整个脚本之间的区别。
UID
(和/或EUID
)。如果它不是0
并且需要root
权限,则可以使用sudo
来执行命令(或者如果涉及超过一个简单命令,则启动一个单独的子shell)。例如if [ "$UID" -ne 0 -a "$EUID" -ne 0 ]; then # use sudo
如果您有某个特定的用户应该能够无需密码就使用sudo
,请将该用户添加到wheel
组,并作为 root 运行visudo
,并在末尾配置(取消注释)所需的行。 - David C. Rankin