GNU/Linux >> Tutoriels Linux >  >> Linux

Autorisation refusée car les autorisations de recherche sont manquantes sur un composant du chemin, après chmod et chgrp

Enfin trouvé un correctif. J'ai exécuté ces 2 fonctions pour classer de manière récursive les autorisations de dossier et de fichier de www et dans.

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

J'ai lu cette page ici:https://wiki.apache.org/httpd/13PermissionDeniedet elle expliquait essentiellement et me rappelait que les autorisations sont héritées, "faites de même pour le répertoire et chaque répertoire parent". J'ai donc exécuté ces 2 et tout fonctionne à nouveau.


Habituellement, l'autorisation d'exécution pour un chemin n'est pas définie, comme c'était le cas dans cette question. Le moyen le plus simple de résoudre ce problème est la commande suivante :

chmod a+rX -R /var/www

Mais en utilisant CentOS7 ou RHEL7, vous pourriez rencontrer des problèmes avec SELinux. Si les autorisations de fichier sont correctes et que vous obtenez toujours l'erreur, consultez le journal suivant :

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

Si vous recevez un message comme celui-ci :

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)

Cela signifie :SELinux bloque l'accès à la racine de votre document. Vous pouvez essayer une commande comme celle-ci (récursive et détaillée sur l'option -Rv ):

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

Pour trouver les bons paramètres, regardez dans un répertoire de travail comme /var/www/html avec ceci :

ls -laZ /var/www/

Cela devrait ressembler à :

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

Pour les personnes qui ont peut-être essayé ce qui précède et qui rencontrent toujours des problèmes, assurez-vous qu'aucun des répertoires du chemin n'a une ACL qui empêche l'accès à apache.

Vous pouvez utiliser :

getfacl <directoryname>

pour obtenir les autorisations sur le répertoire qui ont pu être définies à l'aide des ACL. Vous verrez quelque chose comme ça après qui dit en gros que l'utilisateur a toutes les permissions et que le groupe a lu et exécuté (ou recherché) mais pas écrit :

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

Pour donner à apache ou à un groupe l'accès à l'utilisation des ACL, utilisez ce qui suit :

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

assurez-vous simplement que les répertoires parents ont le même. Vous pouvez utiliser le commutateur -R pour effectuer la modification de manière récursive sur le répertoire supérieur.

J'ai rencontré le même problème d'autorisations apache et je me suis cogné la tête en essayant de comprendre pourquoi chmod et chown n'avaient aucun effet avant de me souvenir que j'avais défini des ACL sur le répertoire lors de l'utilisation de Samba il y a quelque temps.


Linux
  1. [CentOS 7 Apache] :Autorisation refusée :les autorisations de fichier refusent l'accès au serveur

  2. Quels sont les avantages de CloudLinux ?

  3. UNIX / Linux :Quelle est la bonne permission des répertoires /tmp et /var/tmp

  4. Chmod 777 vers un dossier et tout son contenu

  5. Est-ce que tar.gz et tgz sont la même chose ?

Qu'est-ce qu'Intel SGX et quels en sont les avantages ?

IMAP vs POP3 vs SMTP :quelles sont les différences ?

Comment modifier récursivement les autorisations de fichiers sous Linux

Ajouter une application au chemin de recherche de commande dans Csh ?

Gérer les autorisations de répertoire et de fichier avec chmod Recursive

En quoi le temps CPU et l'utilisation du CPU sont-ils identiques ?