Em relação ao seu problema e ao SELinux:
A web está repleta de posts de pessoas recomendando desativar o SELinux. É definitivamente a "solução" mais simples, mas não é ideal em um ambiente de produção, pois deixa o servidor mais vulnerável.
Ontem, mergulhei na aprendizagem do SELinux. Achei a seguinte palestra de Thomas Cameron muito útil:
SELinux para Meros Mortais (40min)
Não sei qual distribuição Linux você está usando (e não tenho certeza de quanto, se é que o SELinux varia entre os outros), mas o CentOS fornece um Guia do SELinux .
Introdução Rápida:
Os "contextos" do SELinux são mostrados no formato user:role:type:range
. Por padrão, o SELinux é enviado no targeted
modo, o que limita o acesso aos recursos pelo type
atributo.
Você pode acrescentar a -Z
bandeira de comandos, como ps
, ls
, cp
, mv
, mkdir
, netstat
, e mais para ver o contexto do SELinux de diferentes recursos.
Para visualizar os contextos SELinux da sua pasta da web, execute:
ls -lZ /usr/share/nginx/html
Para visualizar o contexto do seu nginx
processo, execute:
ps -auxZ | grep -i nginx
Também existem "booleanos" do SELinux que podem ser ativados / desativados para casos de uso comuns. Para visualizar uma lista de booleanos relacionados a um servidor da Web ( nginx
neste caso), execute:
getsebool -a | grep -i httpd
Para atualizar um valor booleano, você pode configurá-lo usando o setsebool
comando Exemplo:
setsebool httpd_read_user_content 1
Eu quero consultar os documentos do SELinux para mais alguns comandos (porque é por isso que eles os colocam lá). Alguns outros comandos úteis:
- Rotulagem SELinux
- Utilitários úteis
É sobre onde estou com o meu know-how do SELinux no momento. Eu sei que este é um post antigo, mas espero que isso ajude outras pessoas.