autorisations des liens symboliques dans / tmp

8

J'ai 2 utilisateurs dans ma machine: linuxliteet otheruser.

otheruser a un fichier:

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

linuxlitefait un fichier et un lien symbolique dans /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

Maintenant, bien qu'il otheruserpuisse lire /tmp/fileet /home/otheruser/a, il ne peut pas lire /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

Ma question est, pourquoi ne peut pas otheruserlire un lien symbolique appartenant à linuxlites'il peut lire la cible et aussi un autre fichier qui lui appartient dans le même répertoire que le lien symbolique?

Si cela est important, les autorisations /tmpsont:

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

La distribution est Linux Lite 3.0, le noyau est: Linux 4.4.0-21.generic (i686)

user49822
la source

Réponses:

9

Linux Lite est basé sur Ubuntu, qui restreint les liens symboliques dans les répertoires collants accessibles en écriture (y compris /tmp): les liens symboliques ne peuvent y être déréférencés que par leur propriétaire.

Si vous créez le lien symbolique ailleurs (dans /home/linuxlitepar exemple), vous pourrez le déréférencer de la manière que vous attendez.

(Ubuntu n'est pas la seule distribution à se comporter de cette façon; j'ai mentionné la connexion entre Linux Lite et Ubuntu car la documentation à ce sujet est apparemment spécifique à Ubuntu.)

Stephen Kitt
la source