Berechtigungen von Symlinks in / tmp

8

Ich habe 2 Benutzer in meinem Computer: linuxliteund otheruser.

otheruser hat eine Datei:

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

linuxlitemachte eine Datei und einen Symlink 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

Jetzt otheruserkann er zwar lesen /tmp/fileund /home/otheruser/a, aber nicht lesen /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

Meine Frage ist, warum kann ein Symlink, dessen Eigentümer er ist, nicht otherusergelesen werden, linuxlitewenn er das Ziel und auch eine andere Datei, deren Eigentümer er ist, im selben Verzeichnis wie der Symlink lesen kann?

Wenn es darauf ankommt, sind die Berechtigungen für /tmp:

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

Distribution ist Linux Lite 3.0, Kernel ist: Linux 4.4.0-21.generic (i686)

user49822
quelle

Antworten:

9

Linux Lite basiert auf Ubuntu, das Symlinks in weltweit beschreibbaren Sticky-Verzeichnissen (einschließlich /tmp) einschränkt : Symlinks können dort nur von ihrem Besitzer dereferenziert werden.

Wenn Sie den Symlink an einer anderen Stelle erstellen ( /home/linuxlitez. B. in), können Sie ihn wie erwartet dereferenzieren.

(Ubuntu ist nicht die einzige Distribution, die sich auf diese Weise verhält. Ich habe die Verbindung zwischen Linux Lite und Ubuntu erwähnt, da die Dokumentation dafür scheinbar Ubuntu-spezifisch ist.)

Stephen Kitt
quelle