6

Вопрос BSD/MacOS.

chmod -w file удалит все права на запись из файла

chflags uchg file установит неизменяемый пользователем бит (иначе говоря, "заблокированный") в файле

Помимо очевидного утверждения "установка разрешений против установки флага", каковы технические различия и различия в поведении этих двух команд? Когда один предпочтительнее другого?

1 ответ1

6

Три отличия приходят мне на ум с макушки головы:

  • Флаг uchg блокирует содержимое файла и его запись в каталоге, а права доступа к файлу применяются только к содержимому файла. Это означает, что файл со всеми удаленными правами на запись может свободно перемещаться, переименовываться или даже удаляться любым пользователем с правами на запись в каталог, в котором находится файл.
  • Пользователь root игнорирует права доступа к файлам, но подвергается блокировке uchg. Но пользователь root может разблокировать файл, так что разница не так уж велика.
  • По крайней мере в OS X удаление всех прав на запись в разрешениях POSIX может быть отменено списком контроля доступа в файле. chmod -w не удаляет записи ACL, предоставляющие права на запись, поэтому некоторые пользователи и / или группы могут по-прежнему иметь права на запись.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .