URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 2423
[ Назад ]

Исходное сообщение
"Бага в cgi-bin + perl + sudo"

Отправлено Slavik , 18-Июн-04 13:48 
Есть скрипт a.pl в /cgi-bin в котором выпоняю такую команду
print `sudo -u root ./root_file.pl`;
root_file.pl имеет атрибуты 700 владелиц root.
И в этом файле делаем
print "Test";

Так вот, весь вопрос в том, что если запустить файл a.pl из консоли то он работает коректно, а если обратится к нему через браузер, он ничего не выводит.

Права на файлы выставленны коректно, да они собственно и работали раньше.


Содержание

Сообщения в этом обсуждении
"Бага в cgi-bin + perl + sudo"
Отправлено mar , 20-Июн-04 16:23 
А право на sudo у пользователя от имени которого web-сервер запущен?
В консоли-то Вы не от его имени тестируете :)



"Бага в cgi-bin + perl + sudo"
Отправлено Slavik , 21-Июн-04 11:03 
То что бага в cgi-bin + perl + sudo я и сам понял, а вот куда копать?

Права от имени веб сервера прописанны.
В консоли я запускаю тоже от имени пользователя из под которого работает веб-сервер.
Да и вобще есть хорошаю команда whoami.
Судя по ней я запускаю скрипт от нужных пользователей.

Для пытливых умов скажу сразу: apache собран без suexec и поэтому из cgi-bin все запускается из под пользователя www


"Бага в cgi-bin + perl + sudo"
Отправлено DimMan , 21-Июн-04 11:36 
>Есть скрипт a.pl в /cgi-bin в котором выпоняю такую команду
>print ``;
>root_file.pl имеет атрибуты 700 владелиц root.
>И в этом файле делаем
>print "Test";
>

Попробуй не принт, а:
open(FILE, "sudo -u root ./root_file.pl |");
close(FILE);


"Бага в cgi-bin + perl + sudo"
Отправлено Slavik , 21-Июн-04 12:10 
>Попробуй не принт, а:
>open(FILE, "sudo -u root ./root_file.pl |");
>close(FILE);

Это всеравно что мертвому припарка.
Эфект тотже.
На до копать в cgi-bin но где именно???

Спасайте, теряю веру в жизнь...


"Бага в cgi-bin + perl + sudo"
Отправлено Rohan , 21-Июн-04 15:14 
А зачем в этой строке пайпа?
Их кажется обрабатывает шелл, а при запуске из вебсервера его не будет.