Расширенные атрибуты файла являются файловой системой функции , которые позволяют пользователям связывать компьютерные файлы с метаданными не интерпретируется в файловой системе, в то время как обычные атрибуты имеют цель строго определенные файловую система (например, разрешения или записи создания и изменений времени). В отличие от вилок , размер которых обычно может достигать максимального размера файла, расширенные атрибуты обычно ограничиваются размером, значительно меньшим, чем максимальный размер файла. Типичные варианты использования включают в себя сохранение имени автора документа, кодировки символов обычного текстового документа или контрольной суммы , криптографического хэша илицифровой сертификат и информация о дискреционном управлении доступом .
В Unix-подобных системах расширенные атрибуты обычно обозначаются аббревиатурой xattr . [1]
Реализации [ править ]
AIX [ править ]
В AIX файловая система JFS2 v2 поддерживает расширенные атрибуты, которые доступны с помощью команды getea . [2] getea , [3] setea , [4] listea , [5] statea , [6] и removeea [7] API , поддержка извлечения, настройка, листинг, получение информации о, и удаление расширенных атрибутов.
BeOS / Haiku [ править ]
В ныне несуществующей BeOS и ее преемниках, таких как Haiku , расширенные атрибуты файлов широко используются в базовых и сторонних программах. Система Be File позволяет индексировать и запрашивая атрибуты, по существу , давая файловую базу данных -like характеристик. Использование расширенных атрибутов в Be-подобных системах различно: например, Tracker и OpenTracker , файловые менеджеры BeOS и Haiku соответственно, оба хранят расположение значков файлов в атрибутах, [8] служба Haiku "Mail" хранит все содержание сообщения и метаданные в расширенных атрибутах файла, [9]а типы файлов MIME хранятся в их атрибутах. Расширенные атрибуты файлов можно просматривать и редактировать в графическом интерфейсе Be-like систем через файловый менеджер, часто Tracker или его производные.
FreeBSD [ править ]
В FreeBSD 5.0 и более поздних версиях файловые системы UFS1 , UFS2 и ZFS поддерживают расширенные атрибуты с использованием семейства системных вызовов extattr_ [10] . Любой обычный файл может иметь список расширенных атрибутов. Каждый атрибут состоит из имени и связанных данных. Имя должно быть строкой с завершающим нулем и существовать в пространстве имен, идентифицированном идентификатором пространства имен с малым целым числом. В настоящее время существует два пространства имен: пользовательское и системное. Пространство имен пользователя не имеет ограничений в отношении именования или содержимого. Системное пространство имен в основном используется ядром для списков управления доступом и принудительного управления доступом .
Linux [ править ]
В Linux файловые системы ext2 , ext3 , ext4 , JFS , Squashfs , Yaffs2 , ReiserFS , Reiser4 , XFS , Btrfs , OrangeFS , Lustre , OCFS2 1.6 , ZFS и F2FS [11] поддерживают расширенные атрибуты (сокращенно xattr ), если они включены в конфигурация ядра. Любой обычный файл или каталог может иметь расширенные атрибуты, состоящие из имени и связанных данных. Имя должно быть строкой с завершающим нулем.с префиксом идентификатора пространства имен и символа точки. В настоящее время существует четыре пространства имен: пользовательское, доверенное, безопасность и система. Пространство имен пользователя не имеет ограничений в отношении именования или содержимого. Системное пространство имен в основном используется ядром для списков управления доступом . Например, пространство имен безопасности используется SELinux .
Поддержка концепции расширенных атрибутов из черновика POSIX.1e [ необходима ссылка ], которая была снята в 1997 году, была добавлена в Linux примерно в 2002 году. [12] [13] По состоянию на 2016 год они еще не получили широкого распространения в пользовательском пространстве. Программы для Linux, но используются Beagle , OpenStack Swift , Dropbox , фреймворком семантических метаданных KDE (Baloo), Chromium , Wget и cURL . Набор рекомендаций по их использованию доступен на freedesktop.org . [14]
Linux ядро позволяет расширенный атрибут иметь имена до 255 байтов и значений до 64 KiB, [15] , как это делают XFS и ReiserFS , но ext2 / 3 / 4 и Btrfs налагать гораздо меньшие ограничения, требуя все атрибуты (имена и значения) одного файла, чтобы поместиться в один «блок файловой системы» (обычно 4 КиБ). Согласно POSIX.1e, [ необходима цитата ] имена должны начинаться с одного из следующих значений: безопасность , система , доверенный и пользователь плюс точка. Это определяет четыре пространства имен расширенных атрибутов. [16]
Расширенные атрибуты могут быть доступны и изменены с помощью getfattr
и setfattr
командой из attr
пакета на большинстве дистрибутивов. [17] API-интерфейсы называются getxattr
и setxattr
.
macOS [ править ]
Mac OS X 10.4 и более поздние версии поддерживают расширенные атрибуты, используя функцию HFS + Attributes File B * -tree, которая позволяет использовать именованные вилки. Хотя именованные вилки в HFS + поддерживают произвольно большие объемы данных через экстенты, поддержка расширенных атрибутов ОС поддерживает только встроенные атрибуты, ограничивая их размер до размера, который может поместиться в пределах одного узла B * -дерева. [ необходима цитата ] Любой обычный файл может иметь список расширенных атрибутов. HFS + поддерживает произвольное количество именованных вилок, и неизвестно, накладывает ли macOS какое-либо ограничение на количество расширенных атрибутов.
Каждый атрибут состоит из имени и связанных данных. Имя представляет собой строку Unicode с завершающим нулем . Никаких ограничений пространства имен нет (что делает эту систему открытой xattr ), и по соглашению в качестве имени атрибута используется обратная строка DNS (похожая на Uniform Type Identifiers ).
macOS поддерживает листинг, [18] получение, [19] настройку, [20] и удаление [21] расширенных атрибутов из файлов или каталогов с помощью Linux-подобного API. Эти возможности доступны из командной строки с помощью утилиты xattr . [22]
Начиная с macOS 10.5 файлы из Интернета помечаются com.apple.quarantine
расширенными атрибутами файлов. [23] В некоторых старых версиях macOS (например, Mac OS X 10.6 ) расширенные атрибуты пользовательского пространства не сохранялись при сохранении в обычных приложениях Какао (TextEdit, Preview и т. Д.). [ необходима цитата ]
OpenBSD [ править ]
Поддержка расширенных атрибутов файлов была удалена из исходного кода OpenBSD в 2005 году из-за отсутствия интереса к спискам контроля доступа . [24]
OS / 2 [ править ]
В OS / 2 версии 1.2 и новее высокопроизводительная файловая система была разработана с учетом расширенных атрибутов, но их поддержка была также модернизирована в файловой системе FAT DOS. Для совместимости с другими операционными системами, использующими раздел FAT, атрибуты OS / 2 хранятся в одном файле " EA DATA. SF
", расположенном в корневом каталоге. Этот файл обычно недоступен, когда операционная система, поддерживающая расширенные атрибуты, управляет диском, но с ним можно свободно работать, например, под DOS. Файлы и каталоги с расширенными атрибутами используют один или несколько кластеров внутри этого файла. Логический номер кластера первого используемого кластера хранится внутри владеющего файл или каталога в записи каталога. [25] Эти два байта используются для других целей в файловой системе FAT32, и поэтому расширенные атрибуты OS / 2 не могут храниться в этой файловой системе.
В некоторых частях OS / 2 версии 2.0 и более поздних, таких как Workplace Shell, используются несколько стандартизованных расширенных атрибутов (также называемых EAs ) для таких целей, как определение типа файла , комментариев, компьютерных значков и ключевых слов о файле. Программы, написанные на интерпретируемом языке Rexx, хранят уже проанализированную версию кода в виде расширенного атрибута, чтобы обеспечить более быстрое выполнение.
Солярис [ править ]
Solaris версии 9 и более поздних версий позволяет файлам иметь «расширенные атрибуты», которые на самом деле являются вилками ; максимальный размер «расширенного атрибута» такой же, как максимальный размер файла, и они читаются и записываются так же, как файлы. Внутри они фактически хранятся и доступны как обычные файлы, поэтому их имена не могут содержать символы "/" [26], а их права собственности и права могут отличаться от прав собственности и прав родительского файла.
Версия 4 сетевой файловой системы поддерживает расширенные атрибуты почти так же, как Solaris.
Windows NT [ править ]
В Windows NT расширенные атрибуты ограниченной длины поддерживаются FAT , [25] HPFS и NTFS . Это было реализовано как часть подсистемы OS / 2 . В частности, они используются сервером NFS подсистемы Interix POSIX для реализации Unix-подобных разрешений. Для Windows Subsystem для Linux добавлена в Windows 10 Anniversary Update использует их для аналогичных целей, сохраняя режим Linux файла, владельца, идентификатор устройства (если применимо), и файл раз в расширенных атрибутах. [27]
Кроме того, NTFS может хранить расширенные атрибуты произвольной длины в форме альтернативных потоков данных (ADS), типа разветвления ресурсов . Плагины для файлового менеджера Total Commander , такие как NTFS Descriptions и QuickSearch eXtended, поддерживают фильтрацию списка файлов или поиск метаданных, содержащихся в ADS. [28] [29] NTFS-3G поддерживает отображение ADS на расширенные атрибуты в FUSE ; он также таким образом сопоставляет атрибуты файла. [30]
См. Также [ править ]
- Пара атрибут – значение
- Атрибут файла
Ссылки [ править ]
- ^ - Руководство программиста Linux - Обзор, условные обозначения и разное
- ^ "Команда getea" . Документация IBM AIX V7.2 . IBM . Проверено 11 июля 2017 .
- ^ "Подпрограмма getea" . Документация IBM AIX V7.2: Базовая операционная система и расширения, Том 1 . IBM . Проверено 11 июля 2017 .
- ^ "Подпрограмма setea" . Документация IBM AIX V7.2: Базовая операционная система и расширения, Том 2 . IBM . Проверено 11 июля 2017 .
- ^ "Подпрограмма listea" . Документация IBM AIX V7.2: Базовая операционная система и расширения, Том 1 . IBM . Проверено 11 июля 2017 .
- ^ "Подпрограмма состояния" . Документация IBM AIX V7.2: Базовая операционная система и расширения, Том 2 . IBM . Проверено 11 июля 2017 .
- ^ "Подпрограмма removeea" . Документация IBM AIX V7.2: Базовая операционная система и расширения, Том 2 . IBM . Проверено 11 июля 2017 .
- ^ «Атрибуты» . Руководство пользователя Haiku . Хайку, Inc . Проверено 28 января 2021 года .
- ^ «Мастерская: Управление электронной почтой» . Руководство пользователя Haiku . Хайку, Inc . Проверено 28 января 2021 года .
- ^ - Руководство по системным вызовам FreeBSD
- ^ Ким, Jaegeuk (2012-10-05). «[PATCH 13/16] f2fs: добавьте функции xattr и acl» . Проверено 11 июля 2017 .
- ^ "v2.5.3 git commit log" . 2002-02-05 . Проверено 11 июля 2017 .
- ^ «Заметки о выпуске Red Hat Enterprise Linux AS 3 (x86 Edition)» . Красная шляпа . 2003. Архивировано из оригинала на 2015-12-21 . Проверено 11 июля 2017 .
Функциональность EA (расширенные атрибуты) и ACL (списки контроля доступа) теперь доступна для файловых систем ext3.
Кроме того, для NFS доступна функция ACL.
- ^ «Рекомендации по расширенным атрибутам» . 2013-05-18 . Проверено 11 июля 2017 .
- ^ "linux / include / uapi / linux / limits.h" . 2012-10-13 . Проверено 11 июля 2017 .
- ^ - Руководство программиста Linux - Обзор, условные обозначения и разное
- ^ «Команды для управления расширенными атрибутами файловой системы» . GNU Savannah . Проверено 11 июля 2017 .
- ^ - Руководство по системным вызовам Darwin и macOS
- ^ - Руководство по системным вызовам Darwin и macOS
- ^ - Руководство по системным вызовам Darwin и macOS
- ^ - Руководство по системным вызовам Darwin и macOS
- ^ - Дарвин и руководство по основным командам macOS
- ^ «Примечания к выпуску служб запуска» . developer.apple.com .
- ^ Дейл Ран (2005-07-03). "Журнал CVS для src / sys / ufs / ufs / Attic / extattr.h" .
- ^ a b Нетерпеливый, Боб (2000-10-28). «Реализация расширенных атрибутов файловой системы FAT» . Проверено 11 июля 2017 .
- ^ - Справочное руководство по стандартам, средам и макросам Solaris 10
- ^ Хэммонс, Джек (2016-06-15). «Поддержка файловой системы WSL» . MSDN . Проверено 11 июля 2017 .
- ^ "Описание NTFS 1.2.1" . TotalCmd.net . Проверено 16 апреля 2018 года .
- ^ "QuickSearch eXtended" . TotalCmd.net . Проверено 16 апреля 2018 года .
- ^ «Расширенные атрибуты» . Туксера .