O script de inicialização tem problemas de permissões, mas a execução com / bin / sh resolve-os? [fechadas]

2

Alguém pode me dizer o que está acontecendo aqui? Tanto quanto eu sabia, essas formas de executar um script de inicialização são idênticas.

box:~# whoami
root

box:~# /etc/init.d/nginx restart
nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed

box:~# service nginx restart
nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed

box:~# head -1 /etc/init.d/nginx
#!/bin/sh

box:~# /bin/sh /etc/init.d/nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]

Não entendo por que isso funcionou e por que o problema de permissão existe em primeiro lugar. O script de inicialização está sendo executado como root e deve ter acesso ao arquivo pid.

Atualização 1: algum histórico

Eu tentei a sua solução de problemas padrão de "problemas de permissão", indo tão longe a ponto de tornar o arquivo pid de leitura / escrita no mundo. Anteriormente, eu estava recebendo o mesmo erro de permissão no log de erros, que estava em um local personalizado: em uma montagem. Eu tentei desmontar / remontar sem sucesso. Depois disso, usei o método "sh" que funcionava. Depois disso, pareceu fazer com que o erro de permissões de log desaparecesse, embora agora eu esteja vendo o mesmo erro no arquivo pid (como você pode ver).

Atualização 2: em resposta aos comentários

box3:~# ls -alZ /var/run/nginx.pid
-rw-rw-rw-. root root unconfined_u:object_r:var_run_t:s0 /var/run/nginx.pid
box3:~# ls -alZ /etc/init.d/nginx
-rwxr-xr-x. root root system_u:object_r:httpd_initrc_exec_t:s0 /etc/init.d/nginx

Atualização 3: esse é definitivamente um problema do SELinux

Desativar o SELinux resolve o problema. Eu preciso ler sobre os contextos de segurança do SELinux.

box:~# setenforce 0
box:~# getenforce
Permissive
box:~# /etc/init.d/nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
box:~# setenforce 1
box:~# /etc/init.d/nginx restart
nginx: [emerg] open() "/mnt1/logs/nginx-error.log" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed
    
por laughingbovine 27.04.2015 / 22:58

0 respostas