我有一个bash脚本,需要在不同的用户下运行几个命令。我想用su来做这个,但是如果没有密码提示,我就无法自动su。
运行脚本的用户将是centos中的apache(因此不是真正的用户帐户,例如,您无法执行su apache并在apache用户下获得提示)。
因此,我不认为像期待这样的东西会起作用。我也不能使用ssh密钥从apache ssh到另一个localhost帐户。
有没有办法实现我的目标?硬编码密码对我来说是可以接受的。
答案 0 :(得分:3)
这就是为sudo
构建的 - 细粒度的许可提升。如果您将脚本添加为apache可以使用sudo运行的内容(在/etc/sudoers
文件中),则可以提供有限的权限升级。
但是,要求从apache用户调用的任何内容都非常危险。它可以迅速将有限的本地漏洞转变为根漏洞。在清理输入时要非常小心,理解shell如何扩展变量等等。