php利用exec执行shell脚本问题

Monkey_Online 2012-11-28 05:30:12
先说下我想做的事情:
将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下是可以执行成功的,
希望大家发表一下意见或者看法,谢谢!!
...全文
3533 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiwenyida 2015-06-11
  • 打赏
  • 举报
回复
求教怎么解决的?我的脚本是获取虚拟机ip的,现在也无法执行
Monkey_Online 2012-12-02
  • 打赏
  • 举报
回复
谢谢上面各位的回答,综合一下,问题解决!嘿嘿!
Monkey_Online 2012-12-02
  • 打赏
  • 举报
回复
引用 10 楼 Adam_duanyesheng 的回复:
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……
谢谢各位,问题已经解决。谢谢!
九州剑王 2012-11-30
  • 打赏
  • 举报
回复
加 sudo
Adam_duanyesheng 2012-11-30
  • 打赏
  • 举报
回复 1
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
黄袍披身 2012-11-29
  • 打赏
  • 举报
回复
1.web将结果写到 一个文件里 例如需要创建什么 到哪创建 2.linux root 定时 调用 shell 查看文件是否存在需要更动的内容 如果是 这个时候就是用root 来操作了 建一个定时器就是了.
Gloveing 2012-11-29
  • 打赏
  • 举报
回复
你得查看你有没有执行权限 system/exec先执行一条其他简单的命令比如:ls 、ifconfig看看能否执行成功 再去检查.sh文件的权限问题
mu_rain 2012-11-29
  • 打赏
  • 举报
回复
楼主,请问你的php脚本有没有执行权限? 不是mkdir.sh  ,是那个跑shell 的php .设了执行权限没?
Monkey_Online 2012-11-29
  • 打赏
  • 举报
回复
引用 6 楼 mu_rain 的回复:
楼主,请问你的php脚本有没有执行权限? 不是mkdir.sh  ,是那个跑shell 的php .设了执行权限没?
php的运行权限肯定是有的。
Monkey_Online 2012-11-29
  • 打赏
  • 举报
回复
引用 5 楼 PhpNewnew 的回复:
1.web将结果写到 一个文件里 例如需要创建什么 到哪创建 2.linux root 定时 调用 shell 查看文件是否存在需要更动的内容 如果是 这个时候就是用root 来操作了 建一个定时器就是了.
您的意思是利用Linux的crond服务来实现?每隔一段时间就执行php写入的那个文件,然后再删除?这个办法好吗?
Monkey_Online 2012-11-28
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
本帖最后由 xuzuning 于 2012-11-28 19:32:59 编辑mkdir.sh权限修改为root的 那 apache 就更无权访问了
额。。。mkdir.sh本身就是root用户创建的,只是当执行这个文件的时候,为普通用户赋予root的权限。 版主回复深感荣幸,嘿嘿,说正事。。。 您有什么好方法吗?
xuzuning 2012-11-28
  • 打赏
  • 举报
回复
mkdir.sh权限修改为root的
那 apache 就更无权访问了
Monkey_Online 2012-11-28
  • 打赏
  • 举报
回复
引用 1 楼 Elita0208 的回复:
Apache对该目录要有写的权限
谢谢您的回复,可以说一下具体应该怎么设置吗?
anitee2 2012-11-28
  • 打赏
  • 举报
回复
Apache对该目录要有写的权限

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧