permisos de enlaces simbólicos dentro / tmp

8

Tengo 2 usuarios en mi máquina: linuxlitey otheruser.

otheruser tiene un archivo:

otheruser@linuxlite:~$ ls -l a
-rw-rw-r-- 1 otheruser otheruser 6 Mar 31 12:47 a
otheruser@linuxlite:~$ cat a
hello

linuxlitehizo un archivo y un enlace simbólico en /tmp:

otheruser@linuxlite:~$ ls -l /tmp/file /tmp/link
-rw-rw-r-- 1 linuxlite linuxlite  3 Mar 31 12:49 /tmp/file
lrwxrwxrwx 1 linuxlite linuxlite 17 Mar 31 12:49 /tmp/link -> /home/otheruser/a

Ahora, aunque otheruserpuede leer /tmp/filey /home/otheruser/ano puede leer /tmp/link:

otheruser@linuxlite:~$ cat /tmp/file
hi
otheruser@linuxlite:~$ cat /home/otheruser/a
hello
otheruser@linuxlite:~$ cat /tmp/link
cat: /tmp/link: Permission denied

Mi pregunta es, ¿por qué no puede otheruserleer un enlace simbólico de su propiedad linuxlitesi él puede leer el destino y también otro archivo de su propiedad en el mismo directorio que el enlace simbólico?

Si es importante, los permisos /tmpson:

otheruser@linuxlite:~$ ls -l -d /tmp
drwxrwxrwt 9 root root 4096 Mar 31 13:17 /tmp

La distribución es Linux Lite 3.0, el núcleo es: Linux 4.4.0-21.generic (i686)

usuario49822
fuente

Respuestas:

9

Linux Lite se basa en Ubuntu, que restringe los enlaces simbólicos en directorios fijos de escritura mundial (incluidos /tmp): los enlaces simbólicos solo pueden ser desreferenciados por su propietario.

Si crea el enlace simbólico en otro lugar (en, /home/linuxlitepor ejemplo), podrá desreferenciarlo de la manera que espera.

(Ubuntu no es la única distribución que se comporta de esta manera; mencioné la conexión entre Linux Lite y Ubuntu porque la documentación para esto es aparentemente específica de Ubuntu).

Stephen Kitt
fuente