我有代码和所有内容:
pkill python
但是我想从这样的 php 脚本运行它:
echo shell_exec("pkill python");
我得到一个输出:
bash: pkill: (1503) - Operation not permitted
我知道问题出在哪里,就是 pkill 是 su 命令。无论如何要改变它以便 php 脚本可以运行它?
最佳答案
问题是,您要终止的进程不属于 apache 用户(apache 通常作为 www-data
和组 www-data
运行)。如果您赋予 apache 更多权限(比如以用户 root
身份运行它),您的 PHP 脚本将以更多权限运行并且可以执行类似这样的操作。但这很危险,因为如果 apache 或您的 php 脚本中存在安全漏洞,恶意攻击者可能会接管您的系统。
相反,我建议使用 setuid位。
- 创建一个文件
kill.sh
,内容为pkill python
- 使其可执行 (
chmod a+x kill.sh
) - 让它属于root (
chown root:root kill.sh
) - 设置 setuid (
chmod u+s kill.sh
) - 从您的 php 脚本调用此脚本
关于php - 从网站杀死一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21096034/