[mdk-re] offtopic: troubles with python programming
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_mivlgu=2Emurom=2Eru?=
Ср Апр 11 11:19:01 MSD 2001
On Wed, 11 Apr 2001 06:18:11 +0400
Pavel Marakhovsky <_troggy_ на mtu-net.ru> wrote:
> On Tue, 10 Apr 2001 19:41:58 +0400
> Sergey Vlasov <vsu на mivlgu.murom.ru> wrote:
>
> > On Tue, 10 Apr 2001 18:31:08 +0400
> > Pavel Marakhovsky <_troggy_ на mtu-net.ru> wrote:
> >
> > > Права у скрипта и сервера мои, т.е. unatine.unatine. Только сервер
> > > запускается от рута, иначе ошибка на
> > > создание сокета. Масимум что еще можно добавить к выше приведенному
> > > серверу так это обработку
> > > исключений и все, методы мне переопределять не надо. Но я не понимаю
> > > какие права должны быть у
> > > cgi-скрипта
> >
> > А на каталогах какие права стоят (по всей цепочке от / до скрипта)?
> > Может быть, nobody просто не имеет права на вход в каталог, и
> > соответственно ничего не выполняется. (Насколько я помню, на домашнем
> > каталоге по умолчанию стоит 700.)
>
> drwxr-xr-x 3 root root 4096 Апр 5 00:31 /home
> drwx------ 49 unatine unatine 4096 Апр 11 06:11 /home/unatine
^^^^^^^^^^
Вот здесь и происходит облом.
> drwxr-xr-x 3 unatine unatine 4096 Апр 8 16:31 /home/unatine/hins
> drwxr-xr-x 3 unatine unatine 4096 Апр 8 21:27 /home/unatine/hins/html
> drwxr-xr-x 2 unatine unatine 4096 Апр 8 16:32 /home/unatine/hins/html/cgi-bin
>
> Хотя ошибка именно на выполнение, значит он входит в каталог.
> И еще вопрос: если владелец обычный пользователь, а запускает ее рут, то у программы какие права
> рута или пользователя?
>
Права, естественно, рута (если нет SUID). Но посмотрите в CGIHTTPServer.py - за несколько строк до execve, который не проходит, Вы обнаружите вызов os.setuid(nobody). После этого рутовские права пропадают, а nobody не может добраться до скрипта из-за отсутствия прав на вход в каталог /home/unatine. В результате - Permission denied.
Придется ставить на /home/unatine права хотя бы 711 (читать каталог будет нельзя, но, зная имя, обратиться к файлу можно).
Кстати, с Apache та же самая проблема - при стандартной конфигурации http://host/~user не работает из-за прав на домашний каталог.
Подробная информация о списке рассылки community