我有代码和所有内容:
pkill python
但是我想从这样的php脚本运行它:
echo shell_exec("pkill python");
我得到一个输出,上面写着:
bash: pkill: (1503) - Operation not permitted
我知道问题是什么,pkill是su命令。无论如何改变这个以便php脚本可以运行它?
答案 0 :(得分:4)
问题是,您要杀死的进程不属于apache用户(apache通常以www-data
的形式运行,并且组www-data
)。如果你给apache更多权限(比如以用户root
运行它),你的PHP脚本将运行更多的权限,可以做这样的事情。但这很危险,因为如果apache或你的php脚本存在安全漏洞,恶意攻击者可以接管你的系统。
相反,我建议使用setuid位。
kill.sh
pkill python
chmod a+x kill.sh
)chown root:root kill.sh
)chmod u+s kill.sh
)