gpt4 book ai didi

php - 使用 php 使用 sudo 执行命令

转载 作者:可可西里 更新时间:2023-11-01 00:50:30 24 4
gpt4 key购买 nike

我有一个脚本调用以下命令来获取未读消息的数量:

sudo ls /var/vmail/username/new | wc -l

这在从 shell 运行时工作正常(权限设置并且在不提供密码的情况下运行正常)。

但是当使用 exec 从 PHP 运行时,它按预期执行,但它总是返回 0

这可能是什么原因造成的?我该如何调试或修复问题?

(php 5.3、redhat、apache ~默认配置)

编辑

感谢 ruaks 的提示。问题是:sudo:抱歉,您必须有 tty 才能运行 sudo。注释掉 /etc/sudoers 中的条目有助于:

Defaults            requiretty
Defaults:apache !requiretty

但是看起来这对安全性来说不是很好。还有其他更好的解决方案吗?

最佳答案

当通过 apache 执行 PHP 时,进程由运行 apache 的任何用户拥有。请参阅:Finding out what user Apache is running as?如此处所述,该用户处于 sudoers 中通常存在安全风险。

关于php - 使用 php 使用 sudo 执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com