Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 bash 脚本,需要在不同的用户下运行几个命令。我想用 su 执行此操作,但如果没有密码提示,我无法自动 su。
运行脚本的用户将是 centos 中的 apache(因此不是真正的用户帐户,例如,您不能执行 su apache 并在 apache 用户下得到提示)。
因此,我认为像期望这样的东西不会起作用。我也无法使用 ssh 密钥从 apache SSH 到另一个 localhost 帐户。
有没有办法实现我的目标?我可以接受硬编码密码。
这就是sudo为 - 细粒度的权限提升而构建的。如果您将脚本添加为 apache 可以使用 sudo 运行的东西(在/etc/sudoers文件中),您可以提供有限的权限升级。
sudo
/etc/sudoers
然而,要求从 apache 用户调用任何东西是非常危险的。它可以迅速将有限的本地漏洞利用变成根漏洞利用。在清理输入时要非常小心,了解 shell 如何扩展变量等。