我需要我的 PHP 代码以不同的用户身份使用 exec() 运行脚本,因此在我添加的 sudoers 文件中:www-data ALL=(csgo) NOPASSWD: WWW_COMMANDSWWW_COMMANDS 是我需要运行的脚本的别名列表。虽然当我使用su -s /bin/bash www-dataphp 登录并测试它是否通过 ssh 工作时这工作正常,但当我尝试在我的站点上实际发送命令并exec("sudo -u csgo sh /path/to/script.sh")打印它告诉我的输出时sudo: no tty present and no askpass program specified,脚本将不会运行。我也添加Defaults:www-data !requiretty到我的 sudoers 文件中但没有效果。在我的页面上运行 exec() 时,我可以让它工作的唯一方法是设置www-data ALL=(csgo) NOPASSWD: ALL,这显然不是一个很好的解决方案。任何人都知道为什么会这样/如何解决它。
添加回答
举报
0/150
提交
取消