No se puede leer el archivo aunque esté en el mismo grupo

No se puede leer el archivo aunque esté en el mismo grupo

Creé un nuevo enlace simbólico a un archivo (ubicado en el directorio de inicio de otro usuario) para el usuario. Pero no puedo leer aunque el usuario esté en el mismo grupo y los permisos de archivo sean 755.

[lmurugan@localhost ~]$ ls -lrt
total 0
lrwxrwxrwx. 1 root       root       34 Feb 16 16:36 3000.log -> /home/dkanagaraj/.forever/f3-w.log
lrwxrwxrwx. 1 dkanagaraj dkanagaraj 34 Feb 16 16:38 3030.log -> /home/dkanagaraj/.forever/z_lZ.log
[lmurugan@localhost ~]$ less 3030.log
3030.log: Permission denied


[lmurugan@localhost ~]$ ls -lrt
total 0
lrwxrwxrwx. 1 root       root       34 Feb 16 16:36 3000.log -> /home/dkanagaraj/.forever/f3-w.log
lrwxrwxrwx. 1 dkanagaraj dkanagaraj 34 Feb 16 16:38 3030.log -> /home/dkanagaraj/.forever/z_lZ.log

[lmurugan@localhost ~]$ id
uid=1006(lmurugan) gid=1000(dkanagaraj) groups=1000(dkanagaraj)

[lmurugan@localhost ~]$ id dkanagaraj
uid=1000(dkanagaraj) gid=1000(dkanagaraj) groups=1000(dkanagaraj),10(wheel)

[dkanagaraj@localhost .forever]$ ls -lrt /home/dkanagaraj/.forever/f3-w.log
-rwxr-xr-x. 1 dkanagaraj dkanagaraj 425361 Feb 16 16:46 /home/dkanagaraj/.forever/f3-w.log

[dkanagaraj@localhost .forever]$ ls -lrt /home/dkanagaraj/.forever/z_lZ.log
-rwxr-xr-x. 1 dkanagaraj dkanagaraj 570027 Feb 16 16:46 /home/dkanagaraj/.forever/z_lZ.log

Respuesta1

Estás confundiendo la salida de los comandos.

Primero, "3030.log" es un enlace

[lmurugan@localhost ~]$ ls -lrt 
total 0 
lrwxrwxrwx. 1 root       root       34 Feb 16 16:36 3000.log -> /home/dkanagaraj/.forever/f3-w.log
lrwxrwxrwx. 1 dkanagaraj dkanagaraj 34 Feb 16 16:38 3030.log -> /home/dkanagaraj/.forever/z_lZ.log

la "l" en la primera posición muestra esto al igual que "-> /home/dkanagaraj/.forever/z_lZ.log"

muestre los permisos del archivo al que está vinculado, así como los permisos de los directorios principales, dkanagaraj y .forever.

ls -l /home/dkanagaraj/.forever/z_lZ.log

Verhttp://linuxcommand.org/lts0070.phppara una discusión sobre los permisos de archivos y directorios.

Respuesta2

La respuesta de bodhi.zazen es correcta, pero me gustaría responderla de manera un poco diferente: los permisos se adjuntan al inodo, y el enlace simbólico y su objetivo tienen cada uno su propio inodo. Considerarfooyasuntos, abajo:

$ ls -l foo issues
lrwxrwxrwx 1 jklowden jklowden    6 Feb 18 16:46 foo -> issues
-rw-rw-r-- 1 jklowden jklowden 2380 Jan 29 14:02 issues

$ stat foo
  File: ‘foo’ -> ‘issues’
  Size: 6               Blocks: 0          IO Block: 4096   symbolic link
Device: 811h/2065d      Inode: 11406493    Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1000/jklowden)   Gid: ( 1000/jklowden)
Access: 2016-02-18 16:46:52.224805576 -0500
Modify: 2016-02-18 16:46:40.905398163 -0500
Change: 2016-02-18 16:46:40.905398163 -0500
 Birth: -

$ stat issues 
  File: ‘issues’
  Size: 2380            Blocks: 8          IO Block: 4096   regular file
Device: 811h/2065d      Inode: 11405468    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/jklowden)   Gid: ( 1000/jklowden)
Access: 2016-01-29 14:05:26.122808636 -0500
Modify: 2016-01-29 14:02:52.106866058 -0500
Change: 2016-01-29 14:02:52.106866058 -0500
 Birth: -

Por lo general, los permisos de un archivo controlan lo que puede hacer con él, pero como sucede en la mayoría de los sistemas, los permisos de un archivo de enlace simbólico no controlan nada. (Puedechmod 0 foo, y todavíaln -sf barra foofunciona.) Aquí, los permisos en el inodo 11405468 son los que cuentan.

[Lo que sigue está corregido. Gracias a dave_thompson_085 por su comentario aclaratorio.]

En su ejemplo, el archivo real (no el enlace simbólico) es, por supuesto f3-w.log, . Dado que es propiedad de su grupo, dkanagaraj, y tiene privilegios de lectura de grupo, esperaría poder leer su contenido, independientemente de si utilizó algún enlace simbólico.

Los derechos para leer el archivo sontambiéncontrolado por el camino hacia él. Al acceder a un archivo, se requiere permiso de ejecución en todos los directorios enumerados en el nombre de la ruta.(Interfaz de programación de Linux, apartado 15.4.3, página 297). Debido a que el enlace simbólico utiliza una ruta de acceso absoluta a su destino, eldkanagarajnecesidades del grupoejecutarpermiso en cada componente de nombre de ruta: /, home, dkanagarajy .forever. La restricción de permiso de ruta se aplica a cualquier archivo, incluido el enlace simbólico en sí, pero creo que eso lo tiene cubierto.

información relacionada