我有一个bash脚本,它运行需要root权限的命令。我正在尝试在脚本开头设置“su root”或运行前缀为“sudo”的每个命令之间做出决定。这些方法的优点和缺点是什么,哪个更安全?或者有更好的方法使用?谢谢!
答案 0 :(得分:4)
sudo
对安全性更好。如果您的脚本中存在任何漏洞,那么如果您以root身份运行,则可能会利用这些漏洞。通过使用sudo
,您只能将您的漏洞限制为您调用的脚本。因此,假设您调用的脚本是安全的,那么在脚本中使用sudo
也是安全的。
答案 1 :(得分:0)
最好和最安全的方法是使用sudo实际调用脚本。例如。 sudo scriptName
。放su root
或sudo 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
希望有所帮助