Я считаю (не уверен), что владелец файла / каталога и пользователь root являются единственными пользователями, которым разрешено изменять права доступа к файлу / каталогу. Я прав или есть другие пользователи, которым также разрешено изменять разрешения?
files
permissions
user226341
источник
источник
В целях нормальной работы только root и владелец могут
chmod
. Кроме того, root можетchown
иchgrp
, а тем более владелец можетchgrp
пока владелец является членом целевой группы.Однако в целях безопасности существует еще один случай: любой пользователь, имеющий разрешение на запись в каталог, содержащий файл, может заменить файл копией и, таким образом, стать владельцем, получив возможность изменять разрешения и содержимое.
Вот так:
Мы создали каталог и записали файл как root. Так как root принадлежит файлу, мы не можем писать в него и не можем chmod:
Однако у нас есть разрешение на запись в каталог, поэтому мы можем заменить файл, чтобы получить право собственности:
И теперь, когда мы являемся владельцем, мы можем, конечно, делать то, что мы хотим с этим файлом:
Точно так же любой пользователь с разрешением на запись в любой каталог по полному пути, ведущему к файлу, может с этого момента заменить структуру каталогов, получив таким образом право собственности на файл с заданным именем. Разумеется, владение или права доступа к самому оригинальному файлу (который мы переименовали в «yourfile2») не изменились.
источник
getfacl / setfacl
версии Linux поддерживают списки контроля доступа на уровне файлов ( ), которые обеспечивают большую гибкость, чем разрешения для файлов в «классическом» стиле. Удаление файла в * nix работает путем удаления ссылки на файл из каталога, поэтому удаление файла всегда контролируется разрешениями каталога; права доступа к файлам там не играют никакой роли.Команда
chmod
довольно напрямую вызывает системный вызов с тем же именем; Страница man дляchmod(2)
системного вызова (в Linux 4.10) гласит:Так что да, процесс, выполняющийся от имени пользователя root, может изменить разрешения любого файла, если он не отбросил эту
CAP_FOWNER
возможность.Также представляет интерес
chown
; страница руководства дляchown(2)
говорит:источник