No puedo leer un archivo aunque está en mi grupo y los permisos para la lectura grupal están configurados

14

Me encuentro con un problema extraño en una máquina Unix / Linux:

Soy miembro de un grupo, llamémoslo grupo A y un determinado archivo (que tiene un propietario diferente) también pertenece al grupo A. Los permisos de ese archivo son

-rw-rw----

así que esperaría poder abrir ese archivo, pero no lo hago: recibiré el mensaje de error "Permiso denegado" cuando intento ver el contenido del archivo (usando cat).

Dado que los permisos parecen ser correctos, ¿qué más podría estar causando esto? ¿Existen restricciones de "anulación" de permisos? Si es así, ¿cómo me enteraría?

Lagerbaer
fuente
2
¿Qué pasa con los permisos de directorio?
Karlson
Si está en varios grupos, ¿su grupo actual está configurado en A?
Code-Guru
2
@Karlson, si los permisos de directorio fueran el problema, no podría ver los permisos del archivo en primer lugar.
cjm
Muéstranos la ruta completa y el nombre de archivo, por favor.
jippie
Está en /home/theotheruser/somefolder/bla.txt. Estoy en varios grupos.
Lagerbaer

Respuestas:

8

¿Se ha desconectado y vuelto a iniciar sesión desde que fue agregado al grupo A?

De lo contrario, sus procesos de inicio de sesión actuales solo tendrán las membresías de grupo que tenía en el momento del inicio de sesión, sin cambios desde entonces. Y cualquier proceso secundario de ese inicio de sesión tendrá la misma membresía de grupo (es decir, si inició sesión en X, entonces todas las aplicaciones, incluido su emulador de terminal y shell)

Puede probar esto iniciando sesión nuevamente en otra consola o mediante ssh, o algo así exec sudo -u $(id -u -n) -i(para matar y reemplazar efectivamente el shell actual con un nuevo shell, cualquier proceso en segundo plano que pertenezca a ese shell quedará huérfano)

cas
fuente
No, ese no era el problema; Salí y volví a entrar y eso no lo resolvió.
Lagerbaer
3

Con NFS, depende del modo de seguridad que utilice, pero en el tradicional, el cliente envía la lista de grupos a los que pertenece el usuario al servidor, y hay un límite en la cantidad de grupos que se pueden enviar (era 16 la última vez que revisé).

Entonces, el cliente dice: soy uid 1234 y, por cierto, soy miembro de los grupos 12, 13, 14 ... Si estás en más de 16 grupos, esa lista se truncará y habrá grupos para que el servidor no sabe que eres miembro de él.

Esa es probablemente la explicación. Solo el administrador del sistema de la máquina local y / o remota puede hacer algo al respecto, ya sea cambiando el modelo de seguridad o la configuración del servidor NFS o reduciendo la cantidad de grupos de los que es miembro.

Stéphane Chazelas
fuente
Tengo la fuerte sensación de que esta es la razón, porque el grupo en el que estoy aparece en la posición 19 en la salida del comando "grupos". Mostraré esta respuesta al administrador del sistema y veré si ayuda. :)
Lagerbaer
¿Cómo cambiarías el "modelo de seguridad" en NFS para resolver esto?
Danny
2

Como notas en un comentario, no tienes permisos de lectura /home/username. Pero para leer /home/username/path1/path2/file, necesita ejecutar permisos para toda la ruta.

Para depurar esto, ejecute namei -l /home/username/path1/path2/filecomo el usuario que lee el archivo.

Adam Trhon
fuente
Ese fue el problema en mi caso. Quería otorgarle a otro usuario derechos para operar en la subcarpeta de mi directorio principal, pero mi directorio principal tiene acceso a 700, por lo que obtuvieron "Permiso denegado" para cualquier comando.
Cerberus
1

Podrían ser ACL. Ver

getfacl the-file

Podría ser que, por alguna razón, los grupos en los que debe estar no estén configurados correctamente. Comprobar con

id -a

Qué pasa

namei -xl "$(readlink -f the-file)"

getfattr -dm- the-file

sudo lsattr the-file

¿En qué tipo de sistema de archivos reside?

¿Aparece algún dispositivo, SELinux o cualquier otro control de acceso obligatorio en el sistema?

Estás seguro de que el archivo no contiene el texto "Permiso denegado", ¿verdad ;-)?

Stéphane Chazelas
fuente
No, no hay una ACL especial, solo repite lo que me dicen las banderas estándar, y la id -a me dice que estoy en el grupo de ese archivo
Lagerbaer
Lo extraño es que puedo ver los archivos de otro usuario que pertenece al grupo B, del cual también soy miembro ...
Lagerbaer
El sistema de archivos parece ser nfs4. namei me da / y el hogar que pertenece a root, root. / home / username que pertenece al nombre de usuario y al grupo X (del cual no soy miembro), luego el resto es / home / username / path1 / path2 / file donde path1 pertenece al nombre de usuario y al grupo X, y path2 pertenece al nombre de usuario, y grupo A, del cual soy miembro.
Lagerbaer