私のコンピュータには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) です。
答え1
Linux LiteはUbuntuに基づいており、誰でも使用できる固定ディレクトリのシンボリックリンクを制限します。(含む/tmp
):シンボリックリンクはその所有者のみが逆参照できます。
たとえば、他の場所でシンボリックリンクを作成すると、/home/linuxlite
期待した方法でシンボリックリンクを逆参照できます。
(Ubuntuはこのように動作する唯一のディストリビューションではありません。これに関するドキュメントはUbuntuに固有のものであるため、Linux LiteとUbuntuの間の接続について言及しています。)