quyền của symlink bên trong / tmp


8

Tôi có 2 người dùng trong máy của mình: linuxliteotheruser.

otheruser có một tập tin:

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

linuxlitetạo một tệp và một liên kết tượng trưng trong /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

Bây giờ, mặc dù otherusercó thể đọc /tmp/file/home/otheruser/a, anh ta không thể đọc /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

Câu hỏi của tôi là, tại sao không thể otheruserđọc một symlink thuộc sở hữu linuxlitenếu anh ta có thể đọc mục tiêu và một tệp khác do anh ta sở hữu trong cùng thư mục với symlink?

Nếu nó quan trọng, thì các quyền trên /tmplà:

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

Phân phối là Linux Lite 3.0, kernel là: Linux 4.4.0-21.generic (i686)

Câu trả lời:


9

Linux Lite dựa trên Ubuntu, hạn chế các liên kết tượng trưng trong các thư mục dính có thể ghi trên thế giới (bao gồm /tmp): các liên kết tượng trưng chỉ có thể được hủy đăng ký bởi chủ sở hữu của chúng.

Nếu bạn tạo liên kết tượng trưng ở nơi khác ( /home/linuxliteví dụ), bạn sẽ có thể hủy đăng ký theo cách bạn mong đợi.

(Ubuntu không phải là bản phân phối duy nhất để hành xử theo cách này; tôi đã đề cập đến kết nối giữa Linux Lite và Ubuntu vì tài liệu cho việc này dường như là dành riêng cho Ubuntu.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.