Centos 7 questão Selinux eu acho? php não pode ler ou escrever

1

Eu tenho uma pasta de uploads para meu aplicativo da web: /disk2/app/uploads .

ls -Z retorna:

drw-r--r--. apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 uploads

ls -Z / retorna:

drwxrwxrwx. root root system_u:object_r:file_t:s0      disk2

ls -Z /disk2 retorna:

drwxr-xr-x. apache    apache    unconfined_u:object_r:file_t:s0  app

muito do que recebi de aqui

quando executo is_writable('/disk2/app/uploads') no php, ele retorna false

Eu tentei todas as possibilidades em que posso pensar para descobrir isso.

Registros de auditoria relevantes:

type=AVC msg=audit(1510944045.012:202923): avc:  denied  { getattr } for  pid=14017 comm="httpd" path="/disk2/app/uploads/12222/206/1496103427-20170526_151922.jpg" dev=sdb ino=17826039 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:file_t:s0 tclass=file
type=AVC msg=audit(1510944045.012:202924): avc:  denied  { write } for  pid=14017 comm="httpd" name="uploads" dev=sdb ino=2097155 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:file_t:s0 tclass=dir
    
por ajon 17.11.2017 / 23:11

1 resposta

1

Você precisa configurar os contextos do arquivo SELinux para que eles sejam definidos corretamente quando os arquivos forem criados. Arquivos em geral, herdam o texto fcon de seu diretório pai, então você precisa especificar isso corretamente. Algo como

semanage fcontext -a -t httpd_sys_rw_content_t "/disk2/app/uploads(/.*)?"
restorecon -Rv /disk2/app/uploads

deve ao truque.

    
por 17.11.2017 / 23:59