Как использовать файловые флаги для изменения поведения файлов в macOS

Как использовать файловые флаги для изменения поведения файлов в macOS
⏱️ 1 min read

Флаги используются macOS для ограничения возможности изменения файла. Они устанавливаются иначе, чем разрешения, и выполняются в параллельной структуре вместе с такими командами, как chown а также chmod. Вы будете использовать chflags менять флаги, а также ls для просмотра флагов. Unix использует аналогичную систему, но с большим количеством опций, называемых «атрибутами», а не флагами.

Просмотр установленных флагов в macOS

В Терминале вы можете использовать ls флаг для просмотра существующих флагов.

ls -lO 
~/Librarydrwx------@ 88  alexander staff hidden 2992 Jan 25 14:01 Library

Если для файла или папки не установлены флаги, вместо них будет отображаться прочерк.

ls -lO ~/Library/Caches
drwx------+ 234 alexander staff   -    7956 Jan 25 13:03 Caches

Установленные флаги можно удалить, используя их инверсию, как описано ниже.

Установка и сброс флагов в macOS

используя-chflags-macos-chattr-lsattr-hero-set-flag

Флаги чаще всего возникают как проблема. Поскольку они устанавливают дополнительные разрешения, их легко пропустить. Вы обнаружили, что у вас есть файл, который нельзя стереть, независимо от того, насколько повышены ваши права доступа? Возможно, вам придется очистить один или два флага.

Флаги, которые можно установить в 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 может быть установлен или удален только один флаг.

  • непрозрачный делает папку непрозрачной при просмотре через профсоюзное креплениестаромодный способ одновременного просмотра нескольких каталогов.
  • нодамп предотвращает сброс файла или папки во время использования dump Команда для резервного копирования вашей системы.
  • саппнд, саппенд устанавливает системный флаг только для добавления, который позволяет добавлять файл, но не изменять или удалять его. Для снятия этого флага требуется войти в однопользовательский режим.
  • schg, изменение, simmutable устанавливает неизменяемый системный флаг, который блокирует все изменения файлов всеми пользователями любого уровня привилегий. Удаление этого флага требует входа в однопользовательский режим.
  • uappnd, uappend устанавливает пользовательский флаг только добавления. Это может быть установлено владельцем файла и может быть отменено владельцем без повышения привилегий. Поскольку он блокирует файл, с sappnd или же schg при более низкой безопасности он используется гораздо чаще.
  • uchg, обмен, неизменяемый устанавливает пользовательский неизменяемый флаг, который имеет такое же отношение к системному неизменяемому флагу, как uappnd флаг должен sappnd.
  • скрытый устанавливает скрытый флаг. Это скрывает элемент в графическом интерфейсе 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

использование-chflags-macos-chattr-lsattr-атрибутов

Unix запускает аналогичную систему на сервере, но она обрабатывается другими командами. Вместо этого на самых популярных платформах Linux у вас будет доступ к chattr а также lsattr. Эти флаги используются для изменения и просмотра «атрибутов», которые используются в большинстве других установок Unix.

Атрибуты можно просмотреть с помощью lsattr:

lsattr /path/to/file.txt

Изменение атрибутов основано на коде инициализма и перечислено в справочная страница чата:

«Буквы acdeijstuADST выбирают новые атрибуты для файлов: только добавление (a), сжатие (c), без дампа (d), формат экстента (e), неизменяемость (i), ведение журнала данных (j), безопасное удаление. (s), без хвостового слияния

Команда выглядит так:

chattr +s /file/name.txt

Это устанавливает атрибут безопасного удаления для указанного пути.

Подведение итогов

Флаги наиболее полезны при ограничении круга лиц, которые могут изменять файл. Блокируя файлы, вы можете предотвратить несанкционированное вмешательство или случайное редактирование на уровне файловой системы. Без эскалации до уровня root или владельца файла эти привилегии нельзя изменить, поэтому они являются умеренно безопасными.

Join our Newsletter and receive offers and updates! ✅

0 0 голоса
Article Rating
Аватар Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Читайте также:

Подписаться
Уведомить о
guest
0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x