Chinaunix

标题: php执行sudo的问题(在shell下可以) [打印本页]

作者: 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 发表
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很强大,可以配置某机器,某人,用某个命令。
希望能帮你




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2