В чем технические различия между "chmod -w file" и "chflags uchg file"

1134
selbie

Вопрос BSD / MacOS.

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

chflags uchg fileустановит неизменяемый пользователем бит (также известный как «заблокированный») в файле

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

5
Предпочтительный инструмент зависит от того, какую задачу вы пытаетесь выполнить. Кроме того, технические различия очевидны, как вы говорите, один устанавливает права, а единственный устанавливает флаги файла или папки. Ramhound 10 лет назад 0
Вот к чему я клоню. Какие задачи предложит одна над другой? selbie 10 лет назад 1
В некоторых операционных системах вы не можете ** удалить ** неизменяемый пользователем бит, если вы не находитесь на уровне безопасности 0. (И это то, что вы не можете опустить без перезагрузки). Что не столько техническая разница, сколько разница в безопасности. Hennes 10 лет назад 1
В FreeBSD, когда [securelevel] (http://www.freebsd.org/doc/faq/security.html#idp66560048) равен> 0, флаги _system_ immutable или только для добавления не могут быть отключены. Roland Smith 10 лет назад 1

1 ответ на вопрос

5
Gordon Davisson

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

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

Похожие вопросы