permissões de links simbólicos dentro de / tmp

8

Eu tenho 2 usuários na minha máquina: linuxlitee otheruser.

otheruser tem um arquivo:

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

linuxlitecriou um arquivo e um link simbólico em /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

Agora, embora otheruserpossa ler /tmp/filee /home/otheruser/a, ele não pode ler /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

Minha pergunta é: por que não é possível otheruserler um link simbólico de propriedade dele, linuxlitese ele pode ler o destino e também outro arquivo pertencente a ele no mesmo diretório do link simbólico?

Se isso importa, as permissões /tmpsão:

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

A distribuição é Linux Lite 3.0, o kernel é: Linux 4.4.0-21.generic (i686)

user49822
fonte

Respostas:

9

O Linux Lite é baseado no Ubuntu, que restringe links simbólicos em diretórios autocolantes graváveis ​​em todo o mundo (incluindo /tmp): links simbólicos só podem ser desreferenciados por seus proprietários.

Se você criar o link simbólico em outro lugar ( /home/linuxlitepor exemplo), poderá desreferenciá-lo da maneira que você espera.

(O Ubuntu não é a única distribuição a se comportar dessa maneira; mencionei a conexão entre o Linux Lite e o Ubuntu porque a documentação para isso é aparentemente específica do Ubuntu.)

Stephen Kitt
fonte