无法将密码传递给su

时间:2011-07-17 07:53:47

标签: linux apache bash ssh su

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

但是,要求从apache用户调用的任何内容都非常危险。它可以迅速将有限的本地漏洞转变为根漏洞。在清理输入时要非常小心,理解shell如何扩展变量等等。