Linux, giống như hầu hết các hệ thống giống Unix (Apple OS / X là một trong những trường hợp ngoại lệ hiếm hoi), bỏ qua các quyền trên các liên kết tượng trưng khi giải quyết các mục tiêu của chúng chẳng hạn.
Tuy nhiên, quyền sở hữu các liên kết tượng trưng, giống như các tệp khác, có liên quan khi được phép đổi tên hoặc hủy liên kết các mục nhập của chúng trong các thư mục có tập t
bit, chẳng hạn như /tmp
.
Để có thể xóa hoặc đổi tên tệp (symlink hoặc không) /tmp
, bạn cần phải là chủ sở hữu của tệp. Đó là một lý do người ta có thể muốn thay đổi quyền sở hữu của một liên kết tượng trưng (để cấp hoặc xóa quyền để hủy liên kết / đổi tên nó).
$ ln -s / /tmp/x
$ rm /tmp/x
# OK removed
$ ln -s / /tmp/x
$ sudo chown -h nobody /tmp/x
$ rm /tmp/x
rm: cannot remove ‘/tmp/x’: Operation not permitted
Ngoài ra, như Mark Plotnick đã đề cập trong câu trả lời đã bị xóa của mình , các ứng dụng sao lưu và lưu trữ cần lchown()
khôi phục liên kết tượng trưng cho chủ sở hữu ban đầu của chúng. Một tùy chọn khác là chuyển euid và egid trước khi tạo symlink, nhưng điều đó sẽ không hiệu quả và làm phức tạp các cách quản lý đúng trên thư mục mà symlink được trích xuất.
lrwxrwxrwx
. Achmod
không có ý nghĩa ở đây. Theo liên kết dẫn bạn đến các quyền mục tiêu.