[PHP Sudo权限仅在使用exec()时适用于'ALL'命令”>

问题描述 投票:0回答:1

我需要我的PHP代码以使用exec()以其他用户身份运行脚本,因此在sudoers文件中添加了:www-data ALL=(csgo) NOPASSWD: WWW_COMMANDS其中WWW_COMMANDS是我需要运行的脚本的别名列表。虽然当我使用su -s /bin/bash www-data以php登录并测试它是否通过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,这显然不是一个很好的解决方案。任何人都知道为什么会这样/如何解决。

我需要我的PHP代码以使用exec()以其他用户身份运行脚本,因此在sudoers文件中添加了:www-data ALL =(csgo)NOPASSWD:WWW_COMMANDS其中WWW_COMMANDS是脚本i的别名列表。 ..

php debian sudo sudoers
1个回答
0
投票

我什至都不知道没有脚本就可以运行。或嘘。 meuh的评论起作用了,在命令解决此问题之前先删除了sh。

© www.soinside.com 2019 - 2024. All rights reserved.