php执行sudo的问题(在shell下可以)
我以apache的身份执行 在shell执行$ whoami;sudo -l;pwd
可以看到,sudo -l的显示。
如果用php代码
<?php
$output = shell_exec("whoami;sudo -l;pwd");
echo "<pre>${output}</pre>
?>
在页面上只能得到whoami和pwd的结果,sudo没有执行。
我在用visudo在/etc/sudoers中已经添加了apache的权限,在shell下可以执行sudo相关的指令,所以我怀疑是php的某个地方限制了sudo的执行。php的safe_mode是关闭的。
请教还有什么设置会影响php执行sudo。环境是fedora 7, php 5.2.4 可能比较难吧!? sodu写全路径看看
/usr/bin/sudo -l 原帖由 sunceenjoy 于 2008-11-14 11:31 发表 http://bbs.chinaunix.net/images/common/back.gif
sodu写全路径看看
/usr/bin/sudo -l
这样也用了,同样的问题。用exec、system、passthrug等都是同样问题。 突然看出来,你调用出现了问题。既然是用sudo设置用户运行,调用的时候就应该这样
/usr/bin/sudo sudo -l
另外记得要设置成没有密码sudo sudo sudo -l
这样应该也行. 我跟楼主,遇上同一个问题。
有些命令,只有ROOT可以运行,其它用户可使用SUDO 解决,但是PHP脚本里使用SUDO,sudoers配置文件一定要把#Defaults requiretty 注释,测试时,搞到晕S了。。。。
sudo很强大,可以配置某机器,某人,用某个命令。
希望能帮你
页:
[1]