sudo 脚本 - 最佳实践?

sudo 脚本 - 最佳实践?

我有一个脚本,其中一些命令需要作为 sudo 运行。我已经看过了断言的在脚本内运行 sudo 是一个坏主意,最好将整个脚本作为 sudo 运行(然后为了方便起见可以修改 sudoers,如此处所述)。

我也想过,但实在找不到什么理由不是在脚本中运行 sudo 命令。假设脚本及其目录均由 root 用户拥有,因此是纯正的,从安全角度来看,我看不出有任何区别。 (即使是这样,以 sudo 身份运行整个脚本也同样危险)。我在这里错过了什么吗?

答案1

跑步sudo是一个坏主意,因为你不知道会发生什么以及是否真的有必要:

  • 会显示密码提示吗?如果是这样,谁来输入密码?请记住:您的脚本可能由人类在 shell 中运行,但也可以在启动时、由 cron 或在终端不可用的其他情况下在后台运行。

  • 如果用户看到提示,是否会输入密码?就我个人而言,我会立即停止要求我输入密码的脚本。另外,如果您的脚本产生大量输出,我什至可能不会注意到提示。

  • 是否sudo可用并已配置?当前用户可以运行吗sudo?其中一个问题的答案可能是“否”,在这种情况下,您应该让用户选择如何为您的脚本提供必要的权限。

  • 您确定您需要成为超级用户吗?也许我配置了我的系统,以便您的脚本根本不需要 root 权限,在这种情况下sudo完全没有必要,并且可能会非常令人不安。

请让决定您需要哪些特权以及如何授予您这些特权。

如果你是root并且你想的话,跑步sudo可能是个好主意降低您的特权。例如,您可以打开 root 拥有的文件,然后nobody:nogroup出于安全原因立即切换到该文件。尽管如此,sudo可能无法使用或可能无法配置的问题仍然存在。

相关内容