Đối với mục đích hoạt động bình thường, chỉ có root và chủ sở hữu có thể chmod
. Ngoài ra, root có thể chown
và chgrp
, và hơn nữa chủ sở hữu có thể chgrp
miễn là chủ sở hữu là thành viên của nhóm mục tiêu.
Vì mục đích bảo mật, có một trường hợp khác: bất kỳ người dùng nào có quyền ghi vào thư mục chứa tệp có thể thay thế tệp bằng bản sao và do đó trở thành chủ sở hữu, có được khả năng sửa đổi quyền và nội dung.
Thích như vậy:
14:14 mybox:~ mkdir mydir
14:14 mybox:~ cd mydir/
14:14 mybox:mydir echo foo | sudo tee yourfile
foo
14:14 mybox:mydir ls -ld . yourfile
drwxr-xr-x 3 me staff 102 Apr 11 14:14 .
-rw-r--r-- 1 root staff 4 Apr 11 14:14 yourfile
Chúng tôi đã tạo một thư mục và viết một tập tin dưới dạng root. Vì root sở hữu tập tin, chúng tôi không thể ghi vào nó, chúng tôi cũng không thể chmod:
14:15 mybox:mydir echo bar > yourfile
-bash: yourfile: Permission denied
14:15 mybox:mydir chmod a+x yourfile
chmod: Unable to change file mode on yourfile: Operation not permitted
Tuy nhiên, chúng tôi có quyền ghi vào thư mục, vì vậy chúng tôi có thể thay thế tệp để có quyền sở hữu:
14:15 mybox:mydir mv yourfile yourfile2
14:15 mybox:mydir cp yourfile2 yourfile
14:15 mybox:mydir ls -ld . yourfile
drwxr-xr-x 4 me staff 136 Apr 11 14:15 .
-rw-r--r-- 1 me staff 4 Apr 11 14:15 yourfile
Và bây giờ chúng tôi là chủ sở hữu, tất nhiên chúng tôi có thể làm những gì chúng tôi muốn với tệp đó:
14:15 mybox:mydir echo bar > yourfile
14:15 mybox:mydir chmod a+x yourfile
14:16 mybox:mydir cat yourfile
bar
Tương tự, bất kỳ người dùng nào có quyền ghi vào bất kỳ thư mục nào trong đường dẫn đầy đủ dẫn đến tệp có thể thay thế cấu trúc thư mục từ thời điểm đó, do đó có được quyền sở hữu tệp với tên đã cho. Tất nhiên, quyền sở hữu hoặc quyền của tệp gốc thực tế (mà chúng tôi đã đổi tên thành "yourfile2") không bị thay đổi.
14:17 mybox:mydir ls -l yourfile2
-rw-r--r-- 1 root staff 4 Apr 11 14:14 yourfile2