Как организовать выполнение системных команд из PHP

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Как организовать выполнение системных команд из PHP

Непрочитанное сообщение terminus » 2010-02-27 10:16:07

Мне надо будет написать веб админку для управления демоном DNS. Необходимо будет выполнять из админки некоторые системные команды управления демоном (перечитать конфиг, рестарт демону и т.д.). Как правильно добиться этого - как дать Apache/PHP возможность выполнять системные команды для которых нужны полномочия root? Первое, что пришло в голову - поставить в систему sudo и через него настроить доступ к нужной команде для пользователя www из-под которого работает апача.

Код: Выделить всё

# ps auxw | grep http
root      1327  0,0  1,9 30432 19416  ??  Ss    8:48     0:00,80 /usr/local/sbin/httpd -DNOHTTPACCEPT
www       1390  0,0  0,8 12540  8372  ??  I     8:48     0:00,00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www       1391  0,0  1,9 30432 19436  ??  I     8:49     0:00,00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www       1392  0,0  1,9 30432 19436  ??  I     8:49     0:00,00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www       1393  0,0  1,9 30432 19436  ??  I     8:49     0:00,00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www       1394  0,0  1,9 30432 19436  ??  I     8:49     0:00,00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www       1395  0,0  1,9 30432 19436  ??  I     8:49     0:00,00 /usr/local/sbin/httpd -DNOHTTPACCEPT
:-o :unknown:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35418
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Как организовать выполнение системных команд из PHP

Непрочитанное сообщение Alex Keda » 2010-02-27 13:04:02

писать команды в файл, файл по крону раз в минуту читать и команды выполнять
Убей их всех! Бог потом рассортирует...

Аватара пользователя
ADRE
майор
Сообщения: 2641
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: Как организовать выполнение системных команд из PHP

Непрочитанное сообщение ADRE » 2010-02-27 15:48:48

а что тема типа system() не работает? exec() да и есть много интересных функций подбных никсовым, типа: symlink() и др...
кроме определенного пользователя от рута их не кто не запустит, да и через судно можешь управлять )
//del

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Как организовать выполнение системных команд из PHP

Непрочитанное сообщение ProFTP » 2010-03-04 11:36:54

ну или демона написать и ему передавать...
на сокетах например

вообще-то многие рекомендуют sudo c system/exec
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение