为了账号安全,请及时绑定邮箱和手机立即绑定

PHP Sudo 权限仅适用于使用 exec() 时的“ALL”命令

PHP Sudo 权限仅适用于使用 exec() 时的“ALL”命令

PHP
眼眸繁星 2023-04-21 15:09:43
我需要我的 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,这显然不是一个很好的解决方案。任何人都知道为什么会这样/如何解决它。
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

或许,在命令修复问题之前删除了 sh 。



查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信