В целях нормальной работы только root и владелец могут chmod. Кроме того, root может chownи chgrp, а тем более владелец можетchgrp пока владелец является членом целевой группы.
Однако в целях безопасности существует еще один случай: любой пользователь, имеющий разрешение на запись в каталог, содержащий файл, может заменить файл копией и, таким образом, стать владельцем, получив возможность изменять разрешения и содержимое.
Вот так:
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
Мы создали каталог и записали файл как root. Так как root принадлежит файлу, мы не можем писать в него и не можем 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
Однако у нас есть разрешение на запись в каталог, поэтому мы можем заменить файл, чтобы получить право собственности:
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
И теперь, когда мы являемся владельцем, мы можем, конечно, делать то, что мы хотим с этим файлом:
14:15 mybox:mydir echo bar > yourfile
14:15 mybox:mydir chmod a+x yourfile
14:16 mybox:mydir cat yourfile
bar
Точно так же любой пользователь с разрешением на запись в любой каталог по полному пути, ведущему к файлу, может с этого момента заменить структуру каталогов, получив таким образом право собственности на файл с заданным именем. Разумеется, владение или права доступа к самому оригинальному файлу (который мы переименовали в «yourfile2») не изменились.
14:17 mybox:mydir ls -l yourfile2
-rw-r--r-- 1 root staff 4 Apr 11 14:14 yourfile2