我有一个 bash 脚本,它运行需要 root 权限的命令。我正在尝试在脚本开头设置“su root”还是运行以“sudo”为前缀的每个命令之间做出决定。这些方法的优缺点是什么,哪种更安全?或者有没有更好的使用方法?谢谢!
问问题
608 次
3 回答
4
sudo
对安全性更好。如果您的脚本中有任何漏洞,那么如果您以 root 身份运行,则可以利用这些漏洞。通过使用sudo
,您将漏洞限制在您调用的脚本中。因此,假设您调用的脚本是安全的,那么sudo
在您的脚本中使用也是安全的。
于 2013-08-13T18:26:15.050 回答
0
我同意 trenin 的观点,即 sudo 是最好的方法。但是在每个命令前输入 sudo 可能会很烦人。你也可以
do stuff
change to root
do super user stuff
change back to regular user
此外,如果您以 root 身份运行脚本,部分脚本失败可能会导致意外行为。我建议添加“set -e”标志,因为如果任何命令以非零值退出,bash 将立即退出。你可以用'set +e'来撤销这个效果。
另一种方法是,以 root (su) 身份运行整个脚本,但只允许某些用户访问它,如DaveParillo所述
希望它有所帮助
于 2013-08-13T20:04:02.823 回答
0
最好和最安全的方法是使用 sudo 实际调用脚本。例如。sudo scriptName
. 投入su root
或sudo commandInScript
本质上是在做同样的事情。在脚本中调用 root 访问权限。而不是在调用脚本时让脚本以 root 身份运行。
于 2013-08-13T18:32:31.757 回答