bash脚本中su root的安全性

时间:2013-08-13 18:22:31

标签: bash security root sudo su

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

3 个答案:

答案 0 :(得分:4)

sudo对安全性更好。如果您的脚本中存在任何漏洞,那么如果您以root身份运行,则可能会利用这些漏洞。通过使用sudo,您只能将您的漏洞限制为您调用的脚本。因此,假设您调用的脚本是安全的,那么在脚本中使用sudo也是安全的。

答案 1 :(得分:0)

最好和最安全的方法是使用sudo实际调用脚本。例如。 sudo scriptName。放su rootsudo commandInScript基本上做同样的事情。在脚本中调用root访问权限。而不是在调用脚本时让脚本以root身份运行。

答案 2 :(得分: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所描述的那样here

希望有所帮助