0

我有一个 bash 脚本,需要在不同的用户下运行几个命令。我想用 su 执行此操作,但如果没有密码提示,我无法自动 su。

运行脚本的用户将是 centos 中的 apache(因此不是真正的用户帐户,例如,您不能执行 su apache 并在 apache 用户下得到提示)。

因此,我认为像期望这样的东西不会起作用。我也无法使用 ssh 密钥从 apache SSH 到另一个 localhost 帐户。

有没有办法实现我的目标?我可以接受硬编码密码。

4

1 回答 1

3

这就是sudo为 - 细粒度的权限提升而构建的。如果您将脚本添加为 apache 可以使用 sudo 运行的东西(在/etc/sudoers文件中),您可以提供有限的权限升级。

然而,要求从 apache 用户调用任何东西是非常危险的。它可以迅速将有限的本地漏洞利用变成根漏洞利用。在清理输入时要非常小心,了解 shell 如何扩展变量等。

于 2011-07-17T07:57:39.593 回答