[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