mod_python을 사용하여 Apache 2.x에서 python 스크립트를 실행하려고합니다. 내가 루트 권한을 필요로 파이썬 스크립트를 사용하여 방화벽 규칙을 추가하려고openbsd에서 mod_python을 사용하여 아파치에서 루트 권한을 필요로하는 python 스크립트를 실행하는 방법
LoadModule python_module /usr/local/apache2/modules/mod_python.so
<Directory /usr/local/apache2/htdocs/mod_python>
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
게시자와 httpd.conf 파일을 편집했다. 루트 권한을 요청하고 있습니까? 제발 누군가 도와주세요.
#!/usr/local/bin/python
#from mod_python import apache
import sys
import errno
import pf
def index(req):
filter = pf.PacketFilter()
try:
# Enable packet filtering
filter.enable()
print "pf is enabled"
return "pf is enabled"
except IOError, (err, msg):
if err == errno.EACCES:
#sys.exit("Permission denied: are you root?")
return ("Permission denied: are you root?")
elif err == errno.ENOTTY:
#sys.exit("ioctl not supported by the device: is the pf device correct?")
return ("ioctl not supported by the device: is the pf device correct?")
이것은 openBSD에서 아파치를 실행하고 싶은 python 스크립트입니다. mod_python을 사용합니다.
제발, 맨! 귀하의 질문은 이해하기가 매우 어렵습니다. 또한, 당신이 묘사하고있는이 물건은 나에게 아주 잘못된 것 같습니다. pfctl (8)을 통해서만 fw 상태를 변경하십시오. 스크립트에 대한 링크를 게시하여 도움을 받으십시오. httpd는 priviledge가 분리되어 있으므로 사용자 www로 실행되므로 sudo를 허용하지 않는 것이 올바른 동작입니다. 그래서 : 더 많은 정보, 더 명확하게. – ramrunner
이제 포트에서 apache2를 사용하는 것으로 나타났습니다 (이유는?). 기본적으로이 포트는 chroot되지 않습니다. 어떤 사용자로서 httpd를 실행하고 있습니까? – ramrunner
@ramrunner mod_python 버전 3.x는 아파치 2.x 만 지원합니다. GUI를 사용하여 pf에 규칙을 추가하려고합니다. On 버튼을 클릭하면 파이썬 스크립트가 실행되고 규칙이 추가됩니다. 나는 mod_python을 apache2에 삽입하고 파이썬 스크립트를 실행하려고합니다. 그러나 루트 권한을 요청하고 있습니다. 어떻게 그런 스크립트를 실행하도록 설정 할 수 있습니까? –