harvey_tian 发表于 2008-11-11 12:21

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

harvey_tian 发表于 2008-11-12 15:01

可能比较难吧!?

sunceenjoy 发表于 2008-11-14 11:31

sodu写全路径看看

/usr/bin/sudo -l

harvey_tian 发表于 2008-11-14 13:31

原帖由 sunceenjoy 于 2008-11-14 11:31 发表 http://bbs.chinaunix.net/images/common/back.gif
sodu写全路径看看

/usr/bin/sudo -l
这样也用了,同样的问题。用exec、system、passthrug等都是同样问题。

sunceenjoy 发表于 2008-11-14 17:14

突然看出来,你调用出现了问题。既然是用sudo设置用户运行,调用的时候就应该这样
/usr/bin/sudo sudo -l
另外记得要设置成没有密码sudo

sunceenjoy 发表于 2008-11-14 17:14

sudo sudo -l
这样应该也行.

ab1136 发表于 2012-07-27 09:47

我跟楼主,遇上同一个问题。
有些命令,只有ROOT可以运行,其它用户可使用SUDO 解决,但是PHP脚本里使用SUDO,sudoers配置文件一定要把#Defaults    requiretty 注释,测试时,搞到晕S了。。。。
sudo很强大,可以配置某机器,某人,用某个命令。
希望能帮你
页: [1]
查看完整版本: php执行sudo的问题(在shell下可以)