Есть ли хоть малейшая возможность выполнить perl-скрипт в апаче от рута? Я хочу добавлять системных пользователей с помощью adduser через веб-интерфейс.
Я использую Fedora Core 8, apache 2 (работает от пользователя apache), perl 5.8.8. Сегодня целый день ковырялся, пытался и под судо, и сетуид бит, и враппер для перл-скрипта на С написать - не работает никак вообще.
Вы идете неправильным путем, но если хочется, то установите suid-perl, это позволит выполняться суидным перловым скриптам.
Правильным вариантом было бы написать демона, ждущего коннекта с localhost на каком-либо порту или через unix socket, проводящего авторизацию и выполняющего определенные действия с рутовыми правами
>Вы идете неправильным путем, но если хочется, то установите suid-perl, это позволит
>выполняться суидным перловым скриптам.пробовал я и suidperl - тоже безуспешно. Решение с демоном видится мне слегка сложноватым и нетривиальным. Попробую дождаться еще советов.
Ты не понял основной мысли>>Вы идете неправильным путем,
Зачем нужны системные пользователи ? В большинстве случаев их можно держать в базе.
>Вы идете неправильным путем, но если хочется, то установите suid-perl, это позволит
>выполняться суидным перловым скриптам.
>Правильным вариантом было бы написать демона, ждущего коннекта с localhost на каком-либо
>порту или через unix socket, проводящего авторизацию и выполняющего определенные действия
>с рутовыми правамиА еще более правильным будет использование какого-нибудь RPC, коих для perl-а вагон и маленькая тележка: и SOAP и XML-RPC и CORBA и т.д. и т.п.
>А еще более правильным будет использование какого-нибудь RPC, коих для perl-а вагон
>и маленькая тележка: и SOAP и XML-RPC и CORBA и т.д.
>и т.п.Только я в них совершенно не разбираюсь. Как-то лень тратить несколько недель на разбор RPC, хочется немного попроще. Изначально я вообще думал за день справится, но уже неделя минула, а дела всё нет :(
А доку читать пробовали? Большинство модулей перла очень хорошо документированы и зачастую есть готовые примеры. Хотя для такой простой задачи, как я уже говорил, хватит элементарного демона с чисто текстовой передачей команд, без всяких xml, soap и прочего. Сделайте man perlipc и найдете готовые примеры клиента и сервера. Задемонизировать чуть сложнее(не помню готовых примеров в манах), но ведь всегда есть nohup.
>Сделайте man perlipc и найдете готовые примеры
>клиента и сервера.Спасибо за совет, добавил себе в список "to do". Обязательно ознакомлюсь.
>Есть ли хоть малейшая возможность выполнить perl-скрипт в апаче от рута? Я
>хочу добавлять системных пользователей с помощью adduser через веб-интерфейс.
>Я использую Fedora Core 8, apache 2 (работает от пользователя apache), perl
>5.8.8. Сегодня целый день ковырялся, пытался и под судо, и сетуид
>бит, и враппер для перл-скрипта на С написать - не работает
>никак вообще.а что с sudo не так?
>а что с sudo не так?не работает и всё. Я уже и знакомых привлекал - нифига. Без понятия почему
>Есть ли хоть малейшая возможность выполнить perl-скрипт в апаче от рута? Я
>хочу добавлять системных пользователей с помощью adduser через веб-интерфейс.
>Я использую Fedora Core 8, apache 2 (работает от пользователя apache), perl
>5.8.8. Сегодня целый день ковырялся, пытался и под судо, и сетуид
>бит, и враппер для перл-скрипта на С написать - не работает
>никак вообще.Открой WEBMIN и посмотри на исходники.
>Есть ли хоть малейшая возможность выполнить perl-скрипт в апаче от рута? Я
>хочу добавлять системных пользователей с помощью adduser через веб-интерфейс.
>Я использую Fedora Core 8, apache 2 (работает от пользователя apache), perl
>5.8.8. Сегодня целый день ковырялся, пытался и под судо, и сетуид
>бит, и враппер для перл-скрипта на С написать - не работает
>никак вообще.Это конечно извращение но все же. В httpd.conf можно указать от какого пользователя и группы будет запускаться httpd процесс, можно попробовать указать User root Group root может поможет. Но я бы все же так делать не стал.
>Это конечно извращение но все же. В httpd.conf можно указать от какого
>пользователя и группы будет запускаться httpd процесс, можно попробовать указать
>User root Group root может поможет. Но я бы все же
>так делать не стал.рут не катит. Всё-таки предполагается, что это многопользовательская система.
man sudoers на предмет опции requiretty
>man sudoers на предмет опции requirettyочень дельный
>man sudoers на предмет опции requirettyочень дельный совет. У меня в конфиге requiretty был включен :(
всем спасибо.
Проблему решил путем написания wrapper'a на С.