当前位置:编程学习 > php >>

如何通过PHP执行linux命令


     疑问描述:集团存在个项目,php可以通过执行linux命令操作这种项目中php生成的文件,可就是不可以操作/tmp等别的目录下的文件。我使用的意思是想通过php代码做的更好对任意那么的目录可读可写可卸载,可以执行kill pid等的命令。

     要是很麻烦的话,给个思路就可以了。分数可以追加,不在乎分数,只要疑问处理。谢谢。不可能通过php的什么exec,system等函数,来做的更好一个什么ls,ps等等的命令;

     处理方法:

行身份是root,也可以给其最大权限,php调用这个服务做操作。
当然还存在还存在的做法,这是我使用的猜测,您不妨试看看,

1、把php的运行网民改为root,这种可能会存在必须的风险。
2、在apache里面指定可以对某个root权限的文件或目录做操作,该做法没试验过。可能您能试验成功的话,希望反馈一下哦。

   求助者:

恩,第一种做法,我使用的想过,可就是我是想参考我集团的思路来,所以这种做法没尝试过。因为它存在安全疑问。

第二个做法,应该可以,可就是太局限性了。要是文件多咋办,还存在我要想执行个kill,services restart等,肯定就不行了。

大家集团貌似是,写了个linux命令,和您们的思路貌似是一样的   

  回者答:

   这是大家的做法:用VC写个服务,该服务的运行身份是root,也可以给其最大权限,php调用这个服务做操作。 该做法可行,只是就得多一种底层语言。

还存在的做法经测试:

     第一种做法,成功。

    第二种做法,不成功,因为好像apache没做法做这种的设置。
    

   追问者:

   能把第一种做法说下么,集团用的是nginx和lighttpd,网上搜 貌似还存在sudoers可以做的更好   

  回答者:

   您是不可能还没理解我使用的意思呢?

   我使用的项目用是VC写的服务。

   第一种做法,可以改变PHP的运行身份,SuexecUserGroup指定CGI程序运行时所使用的网民和组。非CGI程序的请求仍然使用User指令所指定的网民身份处理。该指令取代了Apache的VirtualHosts配置中的User和Group指令。建议您看下类似的文档,个人做调试。好像还存在别的做法哦。好像是用super。这种您得个人摸索。我只提供思路哦``  哈哈``  谢谢``

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,