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

7

Eu tenho dois usuários em minha máquina: linuxlite e 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

linuxlite criou 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 otheruser possa ler /tmp/file e /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 o otheruser não pode ler um link simbólico de linuxlite se ele puder ler o destino e também outro arquivo de sua propriedade no mesmo diretório do link simbólico?

Se for importante, as permissões em /tmp sã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)

    
por user49822 31.03.2017 / 12:29

1 resposta

8

O Linux Lite é baseado no Ubuntu, o qual restringe links simbólicos em diretórios colados graváveis pelo mundo (incluindo /tmp ): links simbólicos só podem ser desreferenciados pelo seu dono.

Se você criar o link simbólico em outro lugar (em /home/linuxlite , por exemplo), poderá cancelá-lo da maneira esperada.

(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.)

    
por 31.03.2017 / 13:42