GNU/Linux >> Linux Esercitazione >  >> Linux

Autorizzazione negata perché mancano le autorizzazioni di ricerca su un componente del percorso, dopo chmod e chgrp

Finalmente ho trovato una soluzione. Ho eseguito queste 2 funzioni per archiviare in modo ricorsivo la cartella e i permessi dei file di www e inside.

find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;

Ho letto questa pagina qui:https://wiki.apache.org/httpd/13PermissionDenied e sostanzialmente mi ha spiegato e mi ha ricordato che i permessi sono ereditati, "fai lo stesso per la directory e per ciascuna directory principale". Quindi ho eseguito quei 2 e tutto funziona di nuovo.


Di solito l'autorizzazione di esecuzione per un percorso non è impostata, come in questa domanda. Il modo più semplice per risolvere questo è il seguente comando:

chmod a+rX -R /var/www

Ma usando CentOS7 o RHEL7 potresti riscontrare problemi con SELinux. Se i permessi del file sono corretti e ricevi ancora l'errore, guarda il seguente registro:

tail -f /var/log/audit/audit.log

Se ricevi un messaggio come questo:

type=AVC msg=audit(1464350432.916:8222): avc:  denied  { getattr } for  pid=17526 comm="httpd" path="/var/www/app/index.html" dev="sda1" ino=42021595 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=SYSCALL msg=audit(1464350432.916:8222): arch=c000003e syscall=4 success=no exit=-13 a0=7fde4e450d40 a1=7ffd05e79640 a2=7ffd05e79640 a3=7fde42e43792 items=0 ppid=17524 pid=17526 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)

Ciò significa:SELinux blocca l'accesso alla root dei documenti. Puoi provare un comando come questo (ricorsivo e dettagliato sull'opzione -Rv ):

chcon  --user system_u --type httpd_sys_content_t -Rv /var/www/app/public

Per trovare le impostazioni corrette, cerca in una directory di lavoro come /var/www/html con questo:

ls -laZ /var/www/

Dovrebbe essere simile a:

drwxr-xr-x. server server system_u:object_r:httpd_sys_content_t:s0 .
drwxr-xr-x. root   root   system_u:object_r:var_t:s0       ..
drwxr-xr-x. server server system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. server server system_u:object_r:httpd_sys_content_t:s0 html
drwxrwxr-x. server server unconfined_u:object_r:var_t:s0   app

Per le persone che potrebbero aver provato quanto sopra e stanno ancora riscontrando problemi, assicurati che nessuna delle directory nel percorso abbia un ACL che impedisce l'accesso ad Apache.

Puoi usare:

getfacl <directoryname>

per ottenere le autorizzazioni sulla directory che potrebbero essere state impostate utilizzando gli ACL. Vedrai qualcosa del genere in seguito che sostanzialmente dice che l'utente ha tutte le autorizzazioni e il gruppo ha letto ed eseguito (o cercato) ma non scritto:

# file: <directoryname>
# owner: username
# group: username
user::rwx
user:1000:rwx
group::---
group:username:r-x
mask::rwx
other::rwx

Per concedere ad apache oa un gruppo l'accesso all'utilizzo degli ACL, utilizzare quanto segue:

setfacl -m g:<groupname>:rx <directoryname>

assicurati solo che le directory principali abbiano le stesse. Puoi utilizzare l'opzione -R per apportare la modifica in modo ricorsivo nella directory principale.

Mi sono imbattuto nello stesso problema con i permessi di Apache e stavo sbattendo la testa cercando di capire perché chmod e chown non avessero avuto effetto prima di ricordare che avevo impostato gli ACL sulla directory quando usavo Samba qualche tempo fa.


Linux
  1. [CentOS 7 Apache]:Autorizzazione negata:le autorizzazioni dei file negano l'accesso al server

  2. Chmod 777 in una cartella e tutti i contenuti

  3. Tar.gz e tgz sono la stessa cosa?

  4. JAVA_HOME e PATH sono impostati ma java -version mostra ancora quello vecchio

  5. Copia e chmod/chown allo stesso tempo

Introduzione al comando Linux chmod

Che cos'è Intel SGX e quali sono i vantaggi?

IMAP vs POP3 vs SMTP:quali sono le differenze?

Come modificare ricorsivamente le autorizzazioni dei file in Linux

Gestisci le autorizzazioni di directory e file con chmod Recursive

In che modo il tempo della CPU e l'utilizzo della CPU sono uguali?