Permissions
/tmp 中符號連結的權限
我的機器上有 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)
Linux Lite 基於 Ubuntu,它限制了世界可寫粘性目錄(包括
/tmp
)中的符號連結:那裡的符號連結只能由其所有者取消引用。如果您在其他地方(
/home/linuxlite
例如)創建符號連結,您將能夠以您期望的方式取消引用它。(Ubuntu 並不是唯一以這種方式執行的發行版;我提到了 Linux Lite 和 Ubuntu 之間的聯繫,因為這方面的文件似乎是特定於 Ubuntu 的。)