Estou hospedando um aplicativo wsgi simples no link sobre o CentOS 7 usando mod_wsgi
e tentando remover o isolamento ilustrado abaixo.
O aplicativo wsgi
O script a seguir é meu aplicativo wsgi
.
- cria um arquivo chamado
/tmp/test-wsgi.txt
- enumera o conteúdo de
/tmp
como uma lista json simples
código:
def application(environ, start_response):
status = '200 OK'
headers = [('Content-Type', 'application/json')]
start_response(status, headers)
with open('/tmp/test-wsgi.txt', 'w+') as w:
w.write('hello world')
files = os.listdir('/tmp')
return json.dumps(files)
Quando estou acessando meu aplicativo da Web, recebo a seguinte resposta
["test-wsgi.txt"]
Ótimo até agora!
No entanto,
Conectado ao mesmo servidor de hospedagem que o root,
Eu abri um shell e executei cat /tmp/test-wsgi.txt
Debrincarcomele,parecequequalqueroperaçãodosistemadearquivos(enumeração/criação/acessoaosoquete)dentrodomeuscriptwsgié"ambiente isolado" (como o chroot jail). O estranho é que eu não configurei nenhum desse tipo de isolamento.
link
/etc/httpd/conf.d/my-app.conf
<VirtualHost *:80>
DocumentRoot /opt/my-app/
WSGIScriptAlias / /opt/my-app/apache/wsgi.py
<Directory /opt/my-app/apache>
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
/etc/httpd/conf/httpd.conf
...
User apache
Group apache
...