permessi di symlink dentro / tmp


8

Ho 2 utenti nella mia macchina: linuxlitee otheruser.

otheruser ha un file:

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

linuxlitecreato un file e un link simbolico in /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

Ora, sebbene otheruserpossa leggere /tmp/filee /home/otheruser/a, non può leggere /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

La mia domanda è: perché non riesco a otheruserleggere un link simbolico di proprietà linuxlitese è in grado di leggere la destinazione e anche un altro file da lui posseduto nella stessa directory del link simbolico?

Se è importante, le autorizzazioni /tmpsono:

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

La distribuzione è Linux Lite 3.0, il kernel è: Linux 4.4.0-21.generic (i686)

Risposte:


9

Linux Lite si basa su Ubuntu, che limita i collegamenti simbolici in directory appiccicose scrivibili in tutto il mondo (incluso /tmp): i collegamenti simbolici possono essere esclusi solo dal loro proprietario.

Se crei il link simbolico altrove ( /home/linuxlitead esempio), sarai in grado di dereferenziarlo come ti aspetti.

(Ubuntu non è l'unica distribuzione a comportarsi in questo modo; ho citato la connessione tra Linux Lite e Ubuntu perché la documentazione per questo è apparentemente specifica per Ubuntu.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.