2014-01-13 2 views
2

У меня есть код и все, что есть:Убить процесс с сайта

 pkill python 

Однако я хотел, чтобы запустить его из PHP-скрипта, например так:

echo shell_exec("pkill python"); 

я получаю выходной сигнал, который говорит :

bash: pkill: (1503) - Operation not permitted 

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

+0

Вы найдете очень хороший ответ на [ask ubun tu forums] (http://askubuntu.com/questions/155791/how-do-i-sudo-a-command-in-a-script-without-being-asked-for-a-password) – np87

+0

Вы должны дать пользователю Apache больше прав, поэтому он может выполнить команду. – Niels

+0

Возможно эта ссылка поможет? http://stackoverflow.com/questions/3166123/how-to-call-shell-script-from-php-that-requires-sudo – Albzi

ответ

3

Проблема заключается в том, что процесс, который вы хотите убить, не принадлежит пользователю apache (apache обычно работает как www-data с группой www-data). Если вы дадите apache больше прав (скажем, запустите его как пользователь root), ваш PHP-скрипт будет работать с большим количеством прав и может делать такие вещи. Но это было бы опасно, потому что если в apache или вашем php-скрипте есть недостаток безопасности, злоумышленник может завладеть вашей системой.

Вместо этого я предлагаю использовать бит setuid.

  1. Создайте файл kill.sh с содержанием pkill python
  2. сделать его исполняемым (chmod a+x kill.sh)
  3. Сделать принадлежат к корню (chown root:root kill.sh)
  4. Сделать УИП (chmod u+s kill.sh)
  5. Вызывать этот скрипт ваш php-скрипт

 Смежные вопросы

  • Нет связанных вопросов^_^