本帖最后由 Reiko1975 于 2010-01-07 12:57:34 编辑

解决方案 »

  1.   

    要想执行以上脚本首先
    apache 用户权限有没有权限执行 sudo 
    或者apache用户组以及用户是否在sudo列表范围内另外 exec 返回的不是BOOL 数据,而是 String数据(也就是SHELL命令的执行返回数据)
    你可以用个变量接受下来,打印出来看看就知道是什么问题了
      

  2.   

    如何看apache用户权限能否执行sudo?
      

  3.   

    apache conf 里的 groupid userid 跟
    ls -las sudo 看看对应权限
      

  4.   

    apache conf里的user和group是daemonls -las sudo这命令出错
    error:ls cannot access sudo
      

  5.   

    用DEMO去获取SUDO权限估计够呛。除非你那么放心把你的权限交出去其实建议你可以自己写个SHELL脚本,SHELL脚本提交给DEMO操作执行你自己那边控制权限操作,可能会更好点
      

  6.   

    我写过一个SHELL,用PHP调用SHELL也不行
      

  7.   

    创建你的SH将你的SH放入demo用户可以接入的PATH内
    修改SH权限为 777吧(other组可执行即可)exec("全路径到/SH");  另外就是你的SH里的写法。那就是关于SHELL脚本编程方面知识了你测试的时候可以只在里面调用一个简单命令
    比如
    touch "test" > abc.txt如果成功了说明至少你PHP调用脚本是完成了。至于你要完成什么那就是你对系统内的脚本编程所决定了
      

  8.   

    SHELL里写mkdir /mnt/1 好用
    改成sudo mount -t cifs //192.168.0.1/var/www /mnt/www -o iocharset=utf8,codepage=932,username=admin,password=admin就不好用了
      

  9.   

    sudo 也是一个命令,sudo 的所在目录权限,sudo 权限 另外sudo 是否在 demo的 path内,都会影响你的
      

  10.   

    编辑sodu
    #Defaults requiretty
    nobody        ALL=(ALL)       NOPASSWD: ALL还是不好用
      

  11.   

    谢谢sports98,把apache conf里的user和group换了一个自己建的,好用了