PHP执行外部命令 - 如何在用户名和密码所需

问题描述:

好了,所以我想换一个目录777的文件模式,所以我使用的线路PHP执行外部命令 - 如何在用户名和密码所需

exec('chmod -R 777' . $dir); 

其中$ dir是的目录路径目录我想改变

它似乎并不工作,但我没有得到它的错误,如果用户我执行的脚本是一个sudo用户,所以我必须输入密码后,我进入该命令,我将如何做到这一点?会不会像exec('chmod -R 777' . $dir\n 'password');

信息我从这个site

得到执行系统命令通过PHP

很多,我们需要执行在Linux系统上的系统命令一个时间 - 删除一个目录,或重新启动服务。但是,由于Apache不能以root权限运行,因此使用PHP的exec(),system()或passthru()函数来实现这一点几乎是不可能的。

对此的解决方案非常简单,特别是在Ubuntu上。 Apache的用户www-data需要被授予使用sudo执行某些应用程序的权限。

1.Run命令sudo visudo

2.At文件的末尾,添加以下

www-data ALL=NOPASSWD: /sbin/iptables, /usr/bin/du

这是假设你想运行iptables和使用超级用户杜(根)权限。但是,如果要使用超级用户权限运行的每个应用程序,然后添加以下的,而不是什么上面

www-data ALL=NOPASSWD: ALL

3.That的它,现在以下列方式使用exec()您.PHP脚本中

exec ("sudo iptables -P FORWARD ACCEPT");

+0

在这里,我只是复制粘贴该网站的内容,因为即使链接中断这可能会有所帮助。 – gvgvgvijayan 2014-09-03 12:57:10

+2

@ seanyt123如果此答案解决了您的问题,请接受答案,这可能会增加*中的质量答案,方法是单击投票下方符号下方的刻度标记。 – gvgvgvijayan 2014-09-03 12:59:38