разрешения символических ссылок внутри / tmp

8

У меня 2 пользователя на моей машине: linuxliteи otheruser.

otheruser имеет файл:

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

linuxliteсделал файл и символическую ссылку в /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

Теперь, хотя он otheruserможет читать /tmp/fileи /home/otheruser/aон не может читать /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

Мой вопрос: почему нельзя otheruserпрочитать символическую ссылку, которой владеет, linuxliteесли он может прочитать цель, а также другой принадлежащий ему файл в том же каталоге, что и символическая ссылка?

Если это имеет значение, то разрешения на /tmp:

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

Дистрибутив - Linux Lite 3.0, ядро ​​- Linux 4.4.0-21.generic (i686).

user49822
источник

Ответы:

9

Linux Lite основан на Ubuntu, который ограничивает символические ссылки в записываемых во всем мире липких каталогах (включая /tmp): символические ссылки могут быть разыменованы только их владельцем.

Если вы создадите символическую ссылку в другом месте ( /home/linuxliteнапример), вы сможете разыменовать ее так, как вы ожидаете.

(Ubuntu - не единственный дистрибутив, который ведет себя таким образом; я упомянул связь между Linux Lite и Ubuntu, потому что документация для этого, по-видимому, специфична для Ubuntu.)

Стивен Китт
источник