我有一个“tom”拥有的 PHP 脚本(使用 PHP-FPM 运行)。“tom”想要以另一个名为“jerry”的用户身份运行脚本 /srv/helloworld.sh。“tom”有权在服务器上运行脚本(因此他可以使用例如 system())。
总而言之,“汤姆”想知道如何做到这一点。“汤姆”读了一些关于此的文章:
sudo su -c /srv/helloworld.sh jerry
但主要的问题是,脚本要求输入密码,而您知道(如果我没记错的话)没有办法在 Web 界面中输入密码。
我对这个话题非常感兴趣,如果您能帮助我,我将非常高兴。提前谢谢!
答案1
man sudoers
有您需要的所有信息。
您需要命令sudo -u jerry /srv/helloworld.sh
并且必须进行更改/etc/sudoers
,以便 tom 无需输入密码即可执行此操作。NOPASSWD
是您的关键词。
答案2
您可以配置 sudo 以允许 tom 以 jerry 身份运行该脚本而无需密码。阅读 sudoers - 我会从“man sudoers”开始。