先说下我想做的事情:
     将Linux下的操作,web化,使用户可以通过web端进行基本的操作,但是现在在写创建目录的代码:
      $mkdir_command = "/home/myname/myshell/mkdir.sh /$directory/ $name";
      exec($mkdir_command,$output,$return);
       .....
     我也知道在web端执行shell脚本,其实在Linux下是以Apache的权限来运行的,
      但是在Linux下我将mkdir.sh在运行时的权限修改为root的了,也就是说任何调用该文件的用户在执行的时候都是以root的权限来执行的:chmod 777 mkdir.sh ;  chmod u+s mkdir.sh   
但是在网页端还是执行不成功。
单独在Linux下是可以执行成功的,
希望大家发表一下意见或者看法,谢谢!!

解决方案 »

  1.   

    本帖最后由 xuzuning 于 2012-11-28 19:32:59 编辑
      

  2.   

    额mkdir.sh本身就是root用户创建的,只是当执行这个文件的时候,为普通用户赋予root的权限。
    版主回复深感荣幸,嘿嘿,说正事 您有什么好方法吗?
      

  3.   

    1.web将结果写到 一个文件里 例如需要创建什么 到哪创建2.linux root 定时 调用 shell 查看文件是否存在需要更动的内容 
    如果是 这个时候就是用root 来操作了
    建一个定时器就是了.
      

  4.   

    楼主,请问你的php脚本有没有执行权限? 不是mkdir.sh  ,是那个跑shell 的php .设了执行权限没?
      

  5.   

    您的意思是利用Linux的crond服务来实现?每隔一段时间就执行php写入的那个文件,然后再删除?这个办法好吗?
      

  6.   

    你得查看你有没有执行权限
    system/exec先执行一条其他简单的命令比如:ls 、ifconfig看看能否执行成功
    再去检查.sh文件的权限问题
      

  7.   

    linux下输入visudo
    然后我们在最后追加
    apache ALL=NOPASSWD:/bin/sh
    然后
    php执行exec("/usr/bin/sudo /bin/sh /xxx/xxx.sh")
    /xxx/xxx.sh 是你要执行的脚本看看这篇文章吧,可以解决你的问题
    http://blog.csdn.net/vindo/article/details/3610587