LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1147|回复: 3

我的PHP程序中的EXEC()为什么不能执行了?

[复制链接]
发表于 2005-9-13 19:23:03 | 显示全部楼层 |阅读模式
我以前写的PHP程序现在为什么不能用了?
以前是用redhat 8.0的版,
用exec函数可以执行外部命令,现在换到了Redhat Linux AS 4下为什么不能用了?

功能:创建一个用户
借助sudo来实现的
有两个文件
一个是:
/sbin/createuser.sh
内容为:
/usr/sbin/sudo /usr/sbin/useradd $!

sudo执行的命令也加到sudoers里去了


mkuser.php
PHP程序的内容为:
<?PHP
$username="mylinux";
exec("/sbin/createuser.sh $username")
?>

这个程序以前在Redhed Linux 8 里都没有问题。。可以功能的创建用户
今天把这些程序拷到RH AS 4下就执行不了。没办法创建用户,也没有提示出错?
有哪位高手知道的,请指点一下!!!!
发表于 2005-9-13 23:29:47 | 显示全部楼层
检查权限,你的php用户是否有执行外部命令的权限?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-14 00:27:24 | 显示全部楼层
我的PHP用户是apache,这个在sudoers里面已经把它加进来了。
apache执行的用户就是acaphe,在sudoers已经加了,但还是不行。!
以前在8.0版本中是可以运行,现在迁到AS 4当中就不行了,不知道AS 4对exec()函数有没有作什么限制,
8.0的apache、PHP跟AS 4的apache、PHP有没有什么地方做了改变?
比如说限制了exec()函数的执行??
回复 支持 反对

使用道具 举报

发表于 2005-9-16 11:51:45 | 显示全部楼层
两个方法:
1,在shell环境里用apache用户执行一下你要执行的命令。看看是否成功。
2,把exec换成system看看程序输出什么。

通常都是权限问题。你的apache用户可以执行系统命令么??默认应该是不可以的。需要改/etc/passwd
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表