From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <_troggy_@mtu-net.ru> X-Recipient: mandrake-russian@altlinux.ru From: Pavel Marakhovsky <_troggy_@mtu-net.ru> To: mandrake-russian@altlinux.ru Subject: Re: [mdk-re] offtopic: troubles with python programming Message-Id: <20010410183220.0b129238._troggy_@mtu-net.ru> In-Reply-To: <3AD29CD7.D33A536@zmail.ru> References: <20010408221040.75ed5315._troggy_@mtu-net.ru> <3AD16150.54252BCB@zmail.ru> <20010409185909.2edea17f._troggy_@mtu-net.ru> <3AD29CD7.D33A536@zmail.ru> X-Mailer: Sylpheed version 0.4.62 (GTK+ 1.2.9; i686-mandrake-linux) Mime-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Sender: mandrake-russian-admin@altlinux.ru Errors-To: mandrake-russian-admin@altlinux.ru X-BeenThere: mandrake-russian@altlinux.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: mandrake-russian@altlinux.ru X-Reply-To: unatine@narod.ru List-Help: List-Post: List-Subscribe: , List-Id: Mandrake/RE discussion list List-Unsubscribe: , List-Archive: Date: Tue Apr 10 19:05:01 2001 X-Original-Date: Tue, 10 Apr 2001 18:32:20 +0400 Archived-At: List-Archive: List-Post: On Tue, 10 Apr 2001 09:40:39 +0400 cornet wrote: > > > > Сразу сорри за оффтопик, но спросить не у кого... > > > > > > > > Из книжки "Язык прграммирования Питон" списан пример веб сервера с возможность выполнения cgi > > > > скриптов: > > > > > > > > #hins.py > > > > #!/usr/bin/python > > > > from BaseHTTPServer import HTTPServer > > > > from CGIHTTPServer import CGIHTTPRequestHandler > > > > import os > > > > > > > > os.chdir("/home/unatine/hins/html") > > > > serv=HTTPServer(('',80),CGIHTTPRequestHandler) > > > > > > > > serv.serve_forever() > > > > > > > > в /home/unatine/hins/html лежит index.html и есть каталог cgi-bin в котором лежит скрипт: > > > > > > > > unatine@localhost ~/hins $ ls -l ./*/* > > > > -rw-r--r-- 1 unatine unatine 314 Апр 8 16:44 ./html/index.html > > > > > > > > ./html/cgi-bin: > > > > итого 4 > > > > -rwxr-xr-x 1 unatine unatine 764 Апр 8 16:26 dict_cgi.py > > > > > > > > Ну то что сервер должен запускаться от рута это в принципе понятно (иначе ошибка создания сокета) > > > > index.html грузится, скрипт даже пытается выполниться, но говорит: > > > > > > > > localhost - - [08/Apr/2001 21:36:39] "POST /cgi-bin/dict_cgi.py HTTP/1.0" 200 - > > > > Traceback (most recent call last): > > > > File "/usr/lib/python2.0/CGIHTTPServer.py", line 211, in run_cgi > > > > os.execve(scriptfile, args, env) > > > > OSError: [Errno 13] Permission denied > > > > > > > > Какие права должны быть у скрипта и сервера, что бы нормально все выполнилось? > > > > > > > > Сейчас у сервера права: > > > > -rwxr-xr-x 1 unatine unatine 220 Апр 8 16:41 hins.py > > > > > > > > Людии.... помогите.... а то я уже совсем запутался... > > > > И еще... в книге написано что скрипты запускаются от nobody, но в python-docs по этому поводу ничего > > > > нет. > > > > > > Приветствую! > > > В целях безопасности Апач работает с правами nobody, и соответственно > > > CGI с указанными Вами правами выполнять не имеет права :-), если только > > > nobody не является еще и членом группы unatine. > > > Так что лучше всего, ИМХО, для вашего CGI'шника поставить: > > > права -rwxr-xr-- > > > оунер "любое_удобное_Вам_имя" > > > группа nobody > > > тогда Апач сможет его выполнить, но не сможет его редактировать, а права > > > на запись будут только у владельца, то есть у Вас :-)) > > > > > > Кстати, если CGI и вообще запускаемый файл не является скомпиленной > > > прогой, а есть скрипт, то очень желательно в заголовке указать имя > > > интерпретатора, тогда Апач будет знать что ему запустить для обработки > > > данного скрипта CGI. > > > Например, если это шелл скрипт, то бычно пишут в первой строке: > > > #!/ban/bash > > > или > > > #!/bin/sh > > > или имя любого другого нужного интепретатора. > > > Если это скрипт на перл, то пишут: > > > #!/usr/bin/perl > > > и таким образом сообщают Апачу, где искать обработчик, то есть сам perl. > > > Аналогично надо действовать и с Питоном. > > > > > > Удачи :-)) > > > > ААААААААААААА........ Люди!!! Этот скрипт и есть сервак с возможность запуска cgi-скриптов. > > #hins.py - это я на всякий случай написал имя файла, в файле его нет:) Этот сервак скрипт находит, > > но не может запустить выдавая выше приведенное... > > > > Апач то все нормально запускает, но мне такой бегемот в моей маленькой квартирке не нужен, вот я и > > пытаюсь что-нибудь маленькое для себя написать. > > Ну, тык дык! Правам доступа побарабану кто перед ними, бегемот или > блоха, они все равно работают. Имхо, ежели хочется написать что то свое > легенькое - пожалуйста, то я не вижу причин почему бы не позаимствовать > механику работы с правами от Апача, ИМХО, там все логично. В конце > концов не суть важно от какого юзера работает все это (от nobody/nobody > или apache/apache) лишь бы не от root'а :-)). Так что если сервер > работает от юзера vasya из группы vasya, то и скриптик должен быть > выполняем для этого самого vasya, а иначе ничего не выйдет, хоть тресни > :-) > Так что пожалуйста, повнимательнее следите за правами доступа, половина > траблов происходят именно из за невнимательного обращения с пермишенами, > в том числе и у меня самого. Так что ежели у меня чего не пашет - парвым > делом смотю на права доступа, часто помогает :-) Интересно, а ошибки в CGIHTTPServer.py быть не может? > Кстати, на счет "бегемотности" Апача, ИМХО, это Вы зря! Он очень > компактен, особенно если нагрузка на него маленькая, так что можно > сократить число резидентных копий в памяти и таким образом сократить его > аппетиты к памяти почти до нуля, помнится при 32Мб он мне да же в Квак2 > играть нисколько не мешал :-)) -- WBW, Pavel e-mail: unatine@narod.ru "Vodalian rank is displayed by the colors and patterns of their skin. Beware the color red; that is the badge of the empress's favor." ---Corbio, pearl diver