>>>>> On Sat, 20 Mar 1999 23:44:07 +0300 (MSK), Andrew Maltsev <am@amsoft.ru>
>said:
AM> Начал изучать mod_perl и вот какой чайниковский вопрос - а как
AM> собственно дать скрипту права читать/писать файлы некоего
AM> пользователя?
>>
>> Кстати, действительно интересно - suexec ведь через mod_perl не
>> заработает, наверно?
AM> Ага. В моем конкретном случае мне пришлось засунуть конфиг тоже в
AM> sql, раньше был в файле. Теперь файлы не нужны и пока меня mod_perl
AM> устраивает (за исключением того, что имя/пароль для доступа к базе
AM> пришлось положить в скрипте открытым текстом и как обойти это я пока не
AM> придумал),
В конфиге apache в <Directory>, где расположен скрипт (можно даже там
внутри в <Files>, если хочется, чтобы доступ был только у этого скрипта)
пишем
PerlSetVar dbpassword YourHiddenDBpassword
Конфигу говорим chown root, chmod 600 -- child'ы его все равно не
читают, а мастер все равно запускается под рутом.
Скрипт, естественно, use Apache и в начале говорит
my $r = Apache->request;
my $DBpassword = $r->dir_config('dbpassword');
Если это action скрипт, тогда хуже, тогда, кажется, придется светить
этим паролем на все то дерево, которому он action, и если юзера имеют к
оному дереву доступ на положить свой мод-перловый скрипт, то они могут
получить этот пароль.
AM> но геморройное оно все какое-то. Заочно я был о нём лучшего
AM> мнения :)
Удобство и безопасность обратно пропорциональны. Если безопасность тебя
не колышет совсем, можно сделать мааленький бинарь, который будет
открывать файл и давать скрипту пайп. Правда, я не вполне уверен, что
mod_perl или apache не примет меры против того suid, если может.
--
Artem Chuprina Артем Чуприна
Network Administrator Сетевой администратор
PIRIT Corp. АО "Пирит"
E-mail: ran@pirit.com Э-почта: ran@pirit.com
Phone: +7(095) 115-7101 Телефон: +7(095) 115-7101
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =