Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Расширенные атрибуты файла являются файловой системой возможности , которые позволяют пользователям связывать компьютерные файлы с метаданными не интерпретируется в файловой системе, в то время как обычные атрибуты имеют цель строго определенные файловую система (например, разрешения или записи создания и изменений времени). В отличие от вилок , размер которых обычно может достигать максимального размера файла, расширенные атрибуты обычно ограничены по размеру до значения, значительно меньшего, чем максимальный размер файла. Типичные варианты использования включают в себя сохранение имени автора документа, кодировки символов обычного текстового документа или контрольной суммы , криптографического хэша илицифровой сертификат и информация о дискреционном управлении доступом .

В 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-like различно: например, Tracker и OpenTracker , файловые менеджеры BeOS и Haiku соответственно, оба хранят расположение значков файлов в атрибутах, [8] служба Haiku "Mail" хранит все содержание сообщения и метаданные в расширенных атрибутах файла, [9]а миметипы файлов хранятся в их атрибутах. Расширенные атрибуты файлов можно просматривать и редактировать в графическом интерфейсе 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]

См. Также [ править ]

  • Пара атрибут – значение
  • Атрибут файла

Ссылки [ править ]

  1. ^ xattr(7)  -  Руководство программиста Linux - Обзор, условные обозначения и разное
  2. ^ "Команда getea" . Документация IBM AIX V7.2 . IBM . Проверено 11 июля 2017 .
  3. ^ "Подпрограмма getea" . Документация IBM AIX V7.2: Базовая операционная система и расширения, Том 1 . IBM . Проверено 11 июля 2017 .
  4. ^ "Подпрограмма setea" . Документация IBM AIX V7.2: Базовая операционная система и расширения, Том 2 . IBM . Проверено 11 июля 2017 .
  5. ^ "Подпрограмма listea" . Документация IBM AIX V7.2: Базовая операционная система и расширения, Том 1 . IBM . Проверено 11 июля 2017 .
  6. ^ "Statea Subroutine" . Документация IBM AIX V7.2: Базовая операционная система и расширения, Том 2 . IBM . Проверено 11 июля 2017 .
  7. ^ "Подпрограмма removeea" . Документация IBM AIX V7.2: Базовая операционная система и расширения, Том 2 . IBM . Проверено 11 июля 2017 .
  8. ^ «Атрибуты» . Руководство пользователя Haiku . Хайку, Inc . Проверено 28 января 2021 года .
  9. ^ «Мастерская: Управление электронной почтой» . Руководство пользователя Haiku . Хайку, Inc . Проверено 28 января 2021 года .
  10. ^ extattr(2)  -  Руководство по системным вызовам FreeBSD
  11. ^ Ким, Jaegeuk (2012-10-05). «[PATCH 13/16] f2fs: добавьте функции xattr и acl» . Проверено 11 июля 2017 .
  12. ^ "v2.5.3 git commit log" . 2002-02-05 . Проверено 11 июля 2017 .
  13. ^ «Информация о выпуске Red Hat Enterprise Linux AS 3 (x86 Edition)» . Красная шляпа . 2003. Архивировано из оригинала на 2015-12-21 . Проверено 11 июля 2017 . Функциональность EA (расширенные атрибуты) и ACL (списки контроля доступа) теперь доступна для файловых систем ext3. Кроме того, для NFS доступна функция ACL.
  14. ^ «Рекомендации по расширенным атрибутам» . 2013-05-18 . Проверено 11 июля 2017 .
  15. ^ "linux / include / uapi / linux / limits.h" . 2012-10-13 . Проверено 11 июля 2017 .
  16. ^ xattr(7)  -  Руководство программиста Linux - Обзор, условные обозначения и разное
  17. ^ «Команды для управления расширенными атрибутами файловой системы» . GNU Savannah . Проверено 11 июля 2017 .
  18. ^ listxattr(2)  -  Руководство по системным вызовам Darwin и macOS
  19. ^ getxattr(2)  -  Руководство по системным вызовам Darwin и macOS
  20. ^ setxattr(2)  -  Руководство по системным вызовам Darwin и macOS
  21. ^ removexattr(2)  -  Руководство по системным вызовам Darwin и macOS
  22. ^ xattr(1)  -  Дарвин и руководство по основным командам macOS
  23. ^ «Примечания к выпуску служб запуска» . developer.apple.com .
  24. ^ Дейл Ран (2005-07-03). "Журнал CVS для src / sys / ufs / ufs / Attic / extattr.h" .
  25. ^ a b Страстный, Боб (2000-10-28). «Реализация расширенных атрибутов файловой системы FAT» . Проверено 11 июля 2017 .
  26. ^ fsattr(5)  - Справочное руководство по стандартам, средам и макросам Solaris 10
  27. ^ Хэммонс, Джек (2016-06-15). «Поддержка файловой системы WSL» . MSDN . Проверено 11 июля 2017 .
  28. ^ "Описание NTFS 1.2.1" . TotalCmd.net . Проверено 16 апреля 2018 года .
  29. ^ "QuickSearch eXtended" . TotalCmd.net . Проверено 16 апреля 2018 года .
  30. ^ «Расширенные атрибуты» . Туксера .