Флаги используются в macOS для ограничения возможности изменения файла. Они устанавливаются иначе, чем разрешения, и выполняются в параллельной структуре вместе с такими командами, как chown
и chmod
. Вы будете использовать chflags
для изменения флагов, а также ls
для просмотра флагов. В Unix используется аналогичная система, но с большим количеством опций, называемых «атрибутами», а не флагами.
Просмотр установленных флагов в macOS
В Терминале вы можете использовать флаг ls
для просмотра любых существующих флагов.
ls -lO ~/Librarydrwx------@ 88 alexander staff hidden 2992 JanContents
Просмотр установленных флагов в macOS
e>
Если для файла или папки не установлены флаги, вместо них будет отображаться тире.
ls -lO ~/Library/Caches drwx------+ 234 alexander staff - 7956 Jan 25 13:03 Caches
Установленные флаги можно удалить, используя их инверсию, как описано ниже.
Установка и очистка флагов в macOS
Флаги чаще всего являются проблемой. Поскольку они устанавливают дополнительные разрешения, их можно легко пропустить. Вы обнаружили файл, который невозможно стереть, независимо от того, насколько повышены ваши права пользователя? Возможно, вам придется снять один или два флага.
Флаги, которые можно установить в macOS, перечислены ниже. Это полный список доступных опций, а также объяснение их функциональности. Б
Установка и очистка флагов в macOS
о владелец файла или суперпользователь;sappnd
и schg
могут быть установлены только суперпользователем, поскольку это флаги системного уровня. Без повышения привилегий можно установить только скрытый флаг.
Установка флагов в macOS
При установке флага в macOS используйте команду ниже. Флаг рекурсии -R
доступен для операций на уровне каталога:
sudo chflags -R [flag] /usr/bin/local sudo chflags [flag] /usr/bin/local/mnt.sh chflags -R hidden ~/Desktop
установит соответствующий флаг. Например, следующий код устанавливает флаг nodump:
sudo chflags nodump /usr/bin/local/tty.sh
Одной командой chflags можно установить или удалить только один флаг.
- opaque делает папку непрозрачной при просмотре через союзное крепление — старомодный способ одновременного просмотра нескольких каталогов.
- nodump предотвращает создание дампа файла или папки во время использования команды
dump
для резервного копирования вУстановка флагов в macOS
ppnd, sappend устанавливает системный флаг только для добавления, который позволяет добавлять файл, но не изменять или удалять его. Для удаления этого флага требуется войти в однопользовательский режим. - schg, schange, simmutable устанавливает системный флаг неизменяемости, который блокирует все изменения файлов всеми пользователями с любым уровнем привилегий. Для удаления этого флага необходимо войти в однопользовательский режим.
- uappnd, uappend устанавливает пользовательский флаг только для добавления. Это может быть установлено владельцем файла и может быть отменено владельцем без повышения привилегий. Поскольку он блокирует файл с помощью
sappnd
илиschg
с более низким уровнем безопасности, он используется гораздо чаще. - uchg, uchange, uimmutable устанавливает неизменяемый флаг пользователя, который имеет такое же отношение к неизменяемому флагу системы, как флаг
uappnd
имеет значение25. - hidden устанавливает флаг скрытности. Это скроет элемент в графическом интерфейсе Finder и командах ls.
Очистка флагов в macOS
Чтобы очистить данный флаг, установите его противоположный. В большинстве случаев это означает добавление «нет» к вашей команде. В случае nodump для очистки используйте флаг дампа, например:
sudo chflags dump /usr/bin/local/oty.sh
Более стандартные термины можно поменять местами с помощью префикса «нет», например:
sudo chflags nosappnd /usr/bin/local/oty.sh
Как и в случае с chmod, доступен флаг рекурсии:
chflags -R nohidden ~/Desktop
После снятия флажков вы сможете изменить владельца и права доступа к файлу, как и ожидалось.
Использование атрибутов в Unix
Unix использует аналогичную систему на серверной стороне, но она обрабатывается другими командами. На самых популярных платформах Linux вместо этого у вас будет доступ к chattr
и lsattr
. Эти флаги используются для изменения и просмотра «атрибутов», которые используются в большинстве других установок Unix.
Атрибуты можно просмотреть с помощью lsattr
:
lsattr /path/to/file.txt
Изменение атрибутов основано на коде инициализации и указано в Справочная страница чата :
Буквы ‘acdeijstuADST’ выбирают новые атрибуты для файлов: только добавление (a), сжатие (c), без дампа (d), формат экстента (e), неизменяемость (i), ведение журнала данных (j), безопасное удаление (s), без слияния хвостов (t), невозможность удаления (u), без обновлений atime (A), синхронные обновления каталогов (D), синхронные обновления (S) и вершина иерархии каталогов (T)».
Команда выглядит так:
chattr +s /file/name.txt
Это устанавливает атрибут безопасного удаления для указанного пути.
Подведение итогов
Флаги наиболее полезны при ограничении кр