php - 从网站杀死一个进程

标签 php linux centos kill-process su

我有代码和所有内容:

     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位。

  1. 创建一个文件kill.sh,内容为pkill python
  2. 使其可执行 (chmod a+x kill.sh)
  3. 让它属于root (chown root:root kill.sh)
  4. 设置 setuid (chmod u+s kill.sh)
  5. 从您的 php 脚本调用此脚本

关于php - 从网站杀死一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21096034/

相关文章:

linux - gdb 错误 - 文件不是可执行格式 : File format not recognized

python - 查找两个占位符之间的所有内容并将其替换为变量的内容

linux - 网络脚本不起作用。 CentOS 2.6

mysql - 如何访问安装在 Centos Linux 中的 SonarQube 服务器?

php - Twig PHP : Incrementing and Subtracting A Value In A Foreach

PHP 日期时间难度

php - 使用 composer 安装 php-amqplib(RabbitMQ) 失败

php - 发现 NotFoundHttpException 错误

linux - 如何获取后台进程的进程ID?

php - 我如何知道 PHP 是否与操作系统兼容?