从网站上杀死一个进程

时间:2014-01-13 16:15:54

标签: php linux centos kill-process su

我有代码和所有内容:

     pkill python

但是我想从这样的php脚本运行它:

  echo shell_exec("pkill python");

我得到一个输出,上面写着:

bash: pkill: (1503) - Operation not permitted

我知道问题是什么,pkill是su命令。无论如何改变这个以便php脚本可以运行它?

1 个答案:

答案 0 :(得分:4)

问题是,您要杀死的进程不属于apache用户(apache通常以www-data的形式运行,并且组www-data)。如果你给apache更多权限(比如以用户root运行它),你的PHP脚本将运行更多的权限,可以做这样的事情。但这很危险,因为如果apache或你的php脚本存在安全漏洞,恶意攻击者可以接管你的系统。

相反,我建议使用setuid位。

  1. 使用内容kill.sh
  2. 创建文件pkill python
  3. 使其可执行(chmod a+x kill.sh
  4. 使其属于根(chown root:root kill.sh
  5. make it setuid(chmod u+s kill.sh
  6. 从您的php脚本
  7. 调用此脚本