Não é possível alterar permissões como root em um arquivo de propriedade do root

2

O problema é que eu tenho arquivos PHP que não funcionam no navegador. Eu suspeito porque o usuário está perdendo read permissões.

Os arquivos estão localizados em um diretório chamado "ajax"

drwxrwxrwx. 2 root root 4096 Sep 13 14:33 ajax

O conteúdo desse diretório:

-rwxrwxrwx. 1 root root 13199 Sep 13 14:33 getOrderDeliveryDates.php
-rwxrwxrwx. 1 root root 20580 Sep 13 14:33 getParcelShops.php
-rwxrwxrwx. 1 root root  1218 Sep 13 14:33 index.php
-rwxrwxrwx. 1 root root   814 Sep 13 14:33 lang.php
-rwxrwxrwx. 1 root root  6001 Sep 13 14:33 prod_reviews.php

Estou 100% certo de que estou logado como root:

[root@accept: nl (MP-git-branch)] $

doublecheck com o comando id :

uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Isso está me deixando louca.

tentei o sudo (mesmo que eu já sou root).

sudo chmod 777 filename

tentou chown (mesmo que eu já seja a raiz do proprietário).

 sudo root filename

Não há erros ou avisos.

o SO é o CentOS 6

    
por Thomas 13.09.2017 / 17:15

1 resposta

4

O CentOS (e outros derivados do Fedora / RHEL) permite um mecanismo de segurança adicional conhecido como SELinux. Aplica restrições adicionais na maioria dos daemons do sistema. Essas restrições adicionais são verificadas após as permissões normais do Unix.

Para configurações não padrão, você geralmente precisa ajustar o SELinux. Os arquivos contêm um rótulo de segurança específico, que é usado pelo SELinux para aplicar a política de segurança. Se o seu problema ocorrer apenas com alguns arquivos, você precisará corrigir os rótulos do SELinux nos arquivos problemáticos. Use chcon com a opção --reference= para copiar o rótulo de um arquivo que funcione para aplicar o mesmo rótulo seu (s) arquivo (s) problemático (s):

chcon --reference=<path to working file> <path to not working file(s)>

Se os seus arquivos estiverem em um local fora do padrão, você deverá adicionar uma regra no banco de dados de rotulagem de arquivos. Isso evita problemas na próxima vez que o sistema de arquivos é remarcado ou restorecon é usado. Escolha o rótulo adequadamente ou use o rótulo já aplicado (verifique os rótulos de segurança existentes com ls -lZ ).

Adicionando uma regra de rotulagem para /path/to/directory e seu conteúdo usando semanage :

semanage fcontext -a -t httpd_user_rw_content_t '/path/to/directory(/.*)?'

Se seus arquivos estiverem em um sistema de arquivos diferente, você pode usar context option para que o ponto de montagem aplique / sobrescreva a rotulagem padrão.

    
por 13.09.2017 / 17:55