Php и Linux

Savio

Новичок
Php и Linux

ОС:Linux
Необходимо через веб-страничку при нажатии на ccылку выполнять операции от рута. Например перегрузить dhcp сервер, тоесть выполнить exec("/etc/init.d/dhcpd restart");
как это можно организовать?
 

Savio

Новичок
ну это наверно по безопасности сильно ударит.... по другому никак наверное. да?
 

ys

отодвинутый новичок
Savio

можно, написать простой сишный код:

#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main (int ac, char *av[]) {
if (ac != 1) return 1;
setuid (0);
system("/etc/init.d/dhcpd restart");
return 0;
}

скомпилировать, поставить полученному творению suid бит и вызывать из php это творение.
 

Savio

Новичок
неа. через sudo ничего не вышло. не работает. у меня такая идея возникла. все необходимые команды писать в БД, а в cron прописать скрипт, который от имени рута будет выполнять эти
команды. кто что думает о таком подходе?
 

Alexandre

PHPПенсионер
я бы выполнил команду через popen
$smd='sudo commanda_restarta';
write ( $smd)
read( $nl) // читаем слово 'Password'
write ( 'password') // пишем Password
read( $otvet) // читаем ответ
close();

ЗЫ - read/write - условные... не соотв. синтаксису РНР. :)

ну еще апач должен быть членом группы, которой разрешено выполнение sudo
 

Фанат

oncle terrible
Команда форума
нет. такое писать умеют далеко не все.
все умеют писать такое:
через sudo ничего не вышло. не работает.
Через рот гланды удалить не вышло. поэтому я буду удалять через жопу автогеном, а вы все перетачивайте руки под мою кривизну и давайте помогайте.
 

ys

отодвинутый новичок
Alexandre

Вроде в первом ответе было что-то дельное.

Но второй меня удивил. какие write, какие read? Я аж еще раз ман перечитал :)
 

Savio

Новичок
розрулил я ситуацию. сделал через sudo. всьо получилось всем спасибо!
 
Сверху