0

我有一个 bash 脚本,它运行需要 root 权限的命令。我正在尝试在脚本开头设置“su root”还是运行以“sudo”为前缀的每个命令之间做出决定。这些方法的优缺点是什么,哪种更安全?或者有没有更好的使用方法?谢谢!

4

3 回答 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 rootsudo commandInScript本质上是在做同样的事情。在脚本中调用 root 访问权限。而不是在调用脚本时让脚本以 root 身份运行。

于 2013-08-13T18:32:31.757 回答