Problema
A cada poucas semanas, a pasta da sessão php de uma máquina muda para proprietário, apache
mesmo que eu esteja usando o nginx. Isso quebra os aplicativos PHP, por exemplo, phpMyAdmin, com um session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied (13)
-Error.
Eu posso corrigi-lo emitindo manualmente sudo chown -R nginx /var/lib/php/session/
Meio Ambiente
- Máquina virtual com CentOS Linux versão 7.4.1708, yum-cron com instalação automática de atualização de segurança ativada
- Repositório EPEL instalado
- Versão nginx: nginx / 1.14.0
- Versão php: 7.0.29 (PHP-FPM)
detalhes adicionais
- Isso parece quebrar a cada poucas semanas, no entanto, não sei dizer exatamente quando não usamos esse PMA diariamente. No entanto, ele quebrou esta semana, e
/var/log/yum.log
posso ver que o nginx foi atualizado esta semana:Apr 18 04:35:53 Aktualisiert: nginx.x86_64 1:1.14.0-1.el7_4.ngx
- Não consigo encontrar nenhuma menção do usuário
apache
no meu/etc/php.ini
. - Enquanto estiver quebrado, as permissões da pasta são:
drwxrwx---. 2 root apache 94 28. Mär 07:49 session
Pergunta, questão
Por que o nginx-updates (automático) mudaria o proprietário da pasta da sessão php, quebrando assim meus aplicativos?
yum install nginx
. A pasta da sessão não é mencionada rpm -ql nginx
. Onde eu procuraria esses scripts de pacote? É para isso que serve o SystemTap?
rpm -q --scripts <pkgname>
. SystemTap ou sysdig são completamente diferentes e faria (com o código adequado) permitir a autenticação algo quando algo toca/var/lib/php/session
1:1.12.2-2.el7
para mim. Caso contrário,rpm -ql ...
nos pacotes e verifique se algum deles possui esse diretório ou procure scripts de pacotes que possam mexer nas permissões. Pode ser outra coisa, portanto, pode ser necessário o monitoramento SystemTap ou sysdig nas chamadas do sistema que envolvem esse diretório.