No puedo acceder al directorio del que soy miembro del grupo

9

En mi servidor web tengo un directorio 'www' que tiene el permiso drwxrwxr--y user: group root:www-datapara que Apache pueda acceder a él.

Ahora he agregado mi cuenta al grupo www-data con

sudo usermod -g www-data myuser

y si lo hago, groupsentonces www-dataestá entre ellos, pero cuando trato de cd simplemente obtener 'Permiso denegado'.

Si cambio el usuario a 'myuser' o configuro el grupo a otro grupo del que soy miembro, puedo ingresar.

¿Me estoy perdiendo de algo?

deslumbramiento
fuente

Respuestas:

14

Su proceso tiene su lista de grupos establecida en el momento de inicio de sesión, por lo que deberá iniciar sesión nuevamente para que el cambio surta efecto.

También sugeriría que agregue www-datacomo un grupo suplementario en lugar del principal (que se establece en un grupo del que usted es miembro. Debería poder hacerlo con los siguientes comandos:

# Reset to your original primary group
sudo usermod -g myuser myuser
# Add an extra supplementary group
sudo usermod --append -G www-data group

Si desea que otros miembros del www-datagrupo puedan leer los archivos que cree , ajuste su umask en consecuencia:

umask 002

Dado que la membresía de su grupo principal es un grupo personal, esto no debería afectar la seguridad de los archivos que cree.

También vale la pena establecer el setgidbit en los directorios en los que creará archivos: esto hará que los archivos hereden la propiedad del grupo del directorio principal:

chmod g+s www/
James Henstridge
fuente
1
volver a iniciar sesión hizo el truco, tan estúpido. También es muy útil serverfault.com/questions/6895/…
dazz el
Gracias por mencionar que Dazz. Nunca entendí por qué no funcionaba para mí xD. Ahora puedo descansar en paz.
f4der
0

Para mí fue algo diferente que resultó en este error

mismo nombre de usuario con dos UID diferentes

Tengo el usuario "apache" configurado localmente con UID = 123 y en el directorio NIS con el mismo nombre ("apache") pero diferente UID = 456. Dependiendo del orden de inicio y la dependencia del servicio, el usuario local podría usarse antes de que el usuario NIS esté disponible. Eso también significa que, cuando muestra nombres de usuario, esto será confuso, ambos aparecerán como "apache". Solo cuando observa los UID numéricos (por ejemplo, al hacerlo ls -lnverá la diferencia. Ejemplo: [root@mymachine]# ls -l drwxr-x--- 4 apache ggg1 88 May 31 17:12 file1 drwxr-x--- 4 apache ppp2 88 May 31 17:12 file2 vea que el UID es diferente para el archivo 2 (456 en lugar de 123): [root@mymachine]# ls -ln drwxr-x--- 4 123 48 88 May 31 17:12 file1 drwxr-x--- 4 456 48 88 May 31 17:12 file2

diferente grupo definido en la configuración de Apache

Otro problema que tuve con la falta de coincidencia del usuario y el error de permiso resultante, fue cuando estaba restringiendo el acceso a los archivos usando el grupo "httpd". Este fue el grupo principal de usuarios "apache" (que se mostró usando ido getent) Apache se inicia como root, luego cambia al usuario configurado y deja caer el permiso. El usuario al que cambia está definido /etc/httpd/conf/httpd.confpor Userparámetro. Sin embargo, aquí está el problema: el grupo (GID) en el que se ejecutará el proceso, ya que NO es el grupo principal de ese usuario. El grupo se define en el mismo archivo de configuración por Groupparámetro.

Entonces en mi caso fue ( /etc/httpd/conf/httpd.conf ): User apache Group apache

Y el directorio obtuvo acceso de esta manera: drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir

Debido a que httpd (GID = 444) era el grupo principal de ese usuario: [root@somemachine]# id apache uid=48(apache) gid=444(httpd) groups=444(httpd)

Resultó en algún tiempo dedicado a la depuración hasta que me di cuenta de que el Grouparchivo de configuración era "apache" y no "httpd".

Error de / var / log / httpd / error_log : [Fri May 31 17:13:40.070343 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of Require all granted: granted [Fri May 31 17:13:40.070367 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of <RequireAny>: granted [Fri May 31 17:13:40.070396 2019] [core:error] [pid 2527] (13)Permission denied: [client 11.22.32.21:53824] AH00132: file permissions deny server access: /var/www/html/somedir/otherdir/css/file1.txt

Espero que esto ayude.

Pik Master
fuente