Убить процесс с веб-сайта

У меня есть код и все, что есть:

     pkill python

Однако я хотел запустить его из php-скрипта следующим образом:

  echo shell_exec("pkill python");

Я получаю вывод, который говорит:

bash: pkill: (1503) - Operation not permitted

Я знаю, в чем проблема, а именно в том, что pkill — это команда su. В любом случае, чтобы изменить это, чтобы php-скрипт мог его запустить?


person Community    schedule 13.01.2014    source источник
comment
Вы должны дать пользователю Apache больше прав, чтобы он мог выполнить команду.   -  person Niels    schedule 13.01.2014
comment
Вы найдете очень хороший ответ на спросить на форумах ubuntu   -  person np87    schedule 13.01.2014
comment
Может эта ссылка поможет? stackoverflow.com/questions/3166123/   -  person Albzi    schedule 13.01.2014


Ответы (1)


Проблема в том, что процесс, который вы хотите убить, не принадлежит пользователю 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. Сделать его настроенным (chmod u+s kill.sh)
  5. Вызовите этот скрипт из вашего php-скрипта
person iblue    schedule 13.01.2014
comment
эй, я пытался сделать это (и многие другие предложения в Интернете) в течение последних 6 часов, и все равно это не работает. любая идея? тот же pkill: ошибка уничтожения pid 25782: операция не разрешена - person Joel; 09.07.2020