GNU/Linux >> Tutoriales Linux >  >> Linux

Permiso denegado porque faltan permisos de búsqueda en un componente de la ruta, después de chmod y chgrp

Finalmente descubrió una solución. Ejecuté estas 2 funciones para archivar recursivamente la carpeta y los permisos de archivo de www y dentro.

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

Leí esta página aquí:https://wiki.apache.org/httpd/13PermissionDenied y básicamente me explicó y me recordó que los permisos se heredan, "haz lo mismo para el directorio y cada directorio principal". Así que ejecuté esos 2 y todo volvió a funcionar.


Por lo general, el permiso de ejecución para una ruta no está configurado, como en esta pregunta. La forma más fácil de resolver esto es el siguiente comando:

chmod a+rX -R /var/www

Pero al usar CentOS7 o RHEL7 puede encontrar problemas con SELinux. Si los permisos de archivo son correctos y aún recibe el error, consulte el siguiente registro:

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

Si recibe un mensaje como este:

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)

Esto significa:SELinux bloquea el acceso a la raíz de su documento. Puede probar un comando como este (Recursivo y detallado en la opción -Rv ):

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

Para encontrar la configuración correcta, busque en un directorio de trabajo como /var/www/html con esto:

ls -laZ /var/www/

Debería verse como:

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

Para las personas que podrían haber probado lo anterior y aún tienen problemas, asegúrese de que ninguno de los directorios en la ruta tenga una ACL que impida el acceso de Apache.

Puedes usar:

getfacl <directoryname>

para obtener los permisos en el directorio que podrían haberse configurado mediante ACL. Verá algo así a continuación que básicamente dice que el usuario tiene todos los permisos y que el grupo ha leído y ejecutado (o buscado) pero no escrito:

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

Para dar acceso a apache o a un grupo para usar ACL, use lo siguiente:

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

solo asegúrese de que los directorios principales tengan lo mismo. Puede usar el modificador -R para realizar el cambio recursivamente en el directorio superior.

Me encontré con este mismo problema de permisos de apache y me golpeaba la cabeza tratando de averiguar por qué chmod y chown no tenían efecto antes de recordar que había configurado ACL en el directorio cuando usaba Samba hace un tiempo.


Linux
  1. ¿Cuáles son los beneficios de CloudLinux?

  2. Chmod 777 a una carpeta y todo el contenido

  3. Permiso denegado al acceder a la carpeta compartida de VirtualBox cuando es miembro del grupo vboxsf

  4. Comprensión de los permisos y tipos de archivos de UNIX

  5. Eliminar y agregar permisos usando notación numérica en la misma línea

Introducción al comando chmod de Linux

¿Qué es Intel SGX y cuáles son los beneficios?

IMAP, POP3 y SMTP:¿cuáles son las diferencias?

Cómo cambiar recursivamente los permisos de archivos en Linux

Administre directorios y permisos de archivos con chmod Recursive

¿En qué se parecen el tiempo de CPU y el uso de CPU?