Метаданные, связанные с компьютерным файлом, которые определяют поведение файловой системы.
Атрибуты файлов — это тип метаданных , которые описывают и могут изменять поведение файлов и/или каталогов в файловой системе . Типичные атрибуты файлов могут, например, указывать или определять, является ли файл видимым, изменяемым, сжатым или зашифрованным. Доступность большинства атрибутов файлов зависит от поддержки базовой файловой системы (например, FAT , NTFS , ext4 ), где данные атрибутов должны храниться вместе с другими управляющими структурами. Каждый атрибут может иметь одно из двух состояний: установленный и очищенный. Атрибуты считаются отличными от других метаданных, таких как даты и время, расширения имен файлов или разрешения файловой системы . Помимо файлов, атрибуты могут иметь папки , тома и другие объекты файловой системы.
ДОС и Windows
Традиционно в DOS и Microsoft Windows файлы и папки принимали четыре атрибута: [1] [2] [3]
- Архив (A): Если установлено, это означает, что файл хостинга изменился с момента последней операции резервного копирования . Файловая система Windows устанавливает этот атрибут для любого измененного файла. Затем программное обеспечение резервного копирования обязано очистить его после успешного полного или инкрементного резервного копирования (не дифференциального).
- Скрытый (H): Если установлено, указывает, что файл хостинга скрыт. Команды MS-DOS, такие как
dir
и приложения Windows, такие как Проводник, не показывают скрытые файлы по умолчанию, если только не попросят сделать это. [4] - Система (S): Если установлено, указывает, что файл хостинга является критически важным системным файлом, который необходим для правильной работы компьютера. MS-DOS и Microsoft Windows используют его для пометки важных системных файлов. Команды MS-DOS, такие как,
dir
и приложения Windows, такие как Проводник, не показывают системные файлы по умолчанию, даже если отображаются скрытые файлы, если только не было запрошено об этом. - Только для чтения (R): Если установлено, указывает, что файл не должен изменяться. При открытии файла API файловой системы обычно не предоставляет разрешение на запись запрашивающему приложению, если только приложение явно не запросит его. Атрибуты только для чтения в папках обычно игнорируются, поскольку используются для другой цели. [5] [6]
С выходом новых версий Windows компания Microsoft расширила список доступных атрибутов файловой системы NTFS , [7] включая, помимо прочего: [8]
- Сжатый (C): Если установлено, Windows сжимает файл хостинга при сохранении. Для получения дополнительной информации см. NTFS § Сжатие файлов .
- Зашифровано (E): Если установлено, Windows шифрует файл хостинга при сохранении, чтобы предотвратить несанкционированный доступ. Для получения дополнительной информации см. NTFS § Шифрование .
- Не индексируется по содержимому (I): если установлено, служба индексирования или поиск Windows не включают файл хостинга в свою операцию индексирования.
Другие атрибуты, отображаемые в столбце «Атрибуты» проводника Windows [7], включают:
- Каталог (D): Запись представляет собой подкаталог , содержащий собственные записи файлов и каталогов.
- Точка повторной обработки (L): файл или каталог имеет связанную точку повторной обработки или является символической ссылкой .
- Офлайн (O): данные файла физически перемещаются в автономное хранилище (удалённое хранилище).
- Разреженный (P): Файл является разреженным , т. е. его содержимое частично пусто и не является непрерывным.
- Временный (T): Файл используется для временного хранения.
В DOS, OS/2 и Windows attrib
команды в cmd.exe и command.com могут использоваться для изменения и отображения четырех традиционных атрибутов файла. [3] [9] Проводник файлов в Windows может отображать семь упомянутых атрибутов, но не может устанавливать или очищать атрибут System. [5] Windows PowerShell , который стал компонентом Windows 7 и более поздних версий, содержит две команды, которые могут читать и записывать атрибуты: Get-ItemProperty
и Set-ItemProperty
. [10] Чтобы изменить атрибут файла в Windows NT , пользователь должен иметь соответствующие разрешения файловой системы, известные как Write Attributes и Write Extended Attributes . [11]
Unix и POSIX
В Unix и Unix-подобных системах, включая системы, соответствующие POSIX , каждый файл имеет «режим», содержащий 9 битовых флагов, контролирующих разрешение на чтение, запись и выполнение для каждого владельца файла, группы и всех других пользователей (см. Разрешения файловой системы § Традиционные разрешения Unix для получения более подробной информации), а также битовые флаги setuid и setgid и флаг «липкого» бита . Режим также определяет тип файла (обычный файл, каталог или какой-либо другой специальный вид).
4.4BSD и производные
В 4.4BSD и 4.4BSD-Lite файлы и каталоги (папки) принимали четыре атрибута, которые мог установить владелец файла или суперпользователь (атрибуты «Пользователь»), и два атрибута, которые мог установить только суперпользователь (атрибуты «Система»): [12]
- (Пользователь) No-dump : если установлено, это означает, что файл или каталог не следует сохранять во время операции резервного копирования .
- (Пользователь и система) Неизменяемый : Если установлено, указывает, что файл или каталог не должны изменяться. Попытки открыть файл для записи, создать файл в каталоге, удалить файл из каталога, переименовать файл в каталоге, переименовать файл или каталог или удалить файл или каталог завершатся ошибкой прав доступа.
- (Пользователь и система) Только добавление : если установлено, указывает, что файл следует только добавлять.
- (Пользователь) Непрозрачный : если задано для каталога, указывает, что каталог непрозрачен при просмотре через стек объединения .
FreeBSD добавила некоторые дополнительные атрибуты, [13] также поддерживаемые DragonFly BSD : [14]
- (Пользователь и система) No-unlink : Если установлено, указывает, что файл или каталог не следует переименовывать или удалять. Попытки переименовать или удалить файл или каталог завершатся ошибкой прав доступа.
FreeBSD также поддерживает: [13]
- (Система) Не архивировать : если установлено, указывает, что файл или каталог не следует архивировать.
- (Система) Снимок : Если установлено, указывает, что файл или каталог является файлом снимка. Этот атрибут поддерживается системой и не может быть установлен даже суперпользователем.
тогда как DragonFly BSD поддерживает: [14]
- (Пользователь и система) Без истории : если установлено, это означает, что история для файла или каталога не должна сохраняться.
- (Пользователь) Swapcache : если установлено, это означает, что чистые данные файловой системы для файла или для каталога и всего, что находится под ним, должны кэшироваться в пространстве подкачки на твердотельном диске .
- (Система) Swapcache : если этот параметр установлен, это означает, что чистые данные файловой системы для файла или каталога и всего, что находится в нем, не должны кэшироваться в пространстве подкачки на твердотельном диске.
- (Система) Архивировано : если установлено, указывает, что файл или каталог могут быть архивированы.
NetBSD добавил еще один атрибут, [15] также поддерживаемый OpenBSD : [16]
- (Система) Архивировано : если установлено, это означает, что файл или каталог заархивирован.
В macOS добавлено три атрибута:
- (Пользователь) Скрытый : если установлено, указывает, что файл или каталог не должны по умолчанию отображаться в графическом интерфейсе; однако ls отобразит их. [17]
- (Система) Ограничено : если установлено, указывает, что файл или каталог будут защищены функцией защиты целостности системы.
- (Пользователь и система) Сжато : атрибут «только для чтения» для файлов, сжатых с помощью сжатия HFS+ .
В этих системах команды chflags
и ls
могут использоваться для изменения и отображения атрибутов файлов. Чтобы изменить атрибут «пользователь» файла в операционных системах на основе 4.4BSD, пользователь должен быть владельцем файла или суперпользователем; чтобы изменить атрибут «система», пользователь должен быть суперпользователем.
Линукс
Операционная система Linux может поддерживать широкий спектр атрибутов файлов , которые могут быть перечислены командой lsattr
и изменены, где это возможно, командой chattr
. Программы могут проверять и изменять атрибуты с помощью операций ioctl . [18]
Многие файловые системы Linux поддерживают только ограниченный набор атрибутов, и ни одна из них не поддерживает все атрибуты, которые chattr
могут изменяться. Файловые системы, которые поддерживают хотя бы некоторые атрибуты, включают ext4 , XFS и btrfs .
OpenSolaris и производные
Поддержка «системных атрибутов» (в которых операционная система определяет значение, в отличие от общих расширенных атрибутов файлов ) была добавлена в OpenSolaris в 2007 году для поддержки сервера CIFS. [19] Оттуда она была перенесена как в выпуски Oracle Solaris 11, так и в проект illumos с открытым исходным кодом .
В этой реализации широкий спектр атрибутов может быть установлен с помощью chmod
команды [20] [21] и перечислен командой ls
. [22] [23]
Программы могут проверять и изменять атрибуты с помощью функций getattrat
и setattrat
. [24] [25]
В настоящее время файловая система ZFS поддерживает все определенные атрибуты, а начиная с Oracle Solaris 11.2 файловая система tmpfs поддерживает подмножество атрибутов. [26]
Смотрите также
Ссылки
- ^ "Определение: атрибут файла". PC Magazine . Ziff Davis . Получено 14 октября 2020 г. .
- ^ "Атрибуты файла". Computer Hope . Получено 2 декабря 2012 г.
- ^ ab "Что такое атрибуты файлов в Windows и как их изменить?". База знаний . Университет Индианы . 11 октября 2011 г. Получено 2 декабря 2012 г.
- ^ "Что такое скрытый файл?". Справка Windows 7. Microsoft . Получено 2 декабря 2012 г.
- ^ ab "Вы не можете просматривать или изменять атрибуты "Только для чтения" или "Системные" для папок в Windows Server 2003, Windows XP, Windows Vista или Windows 7". Служба поддержки Microsoft . Microsoft. 31 мая 2012 г. Получено 2 декабря 2012 г.
- ^ «Почему свойство «только для чтения» у папок такое странное?».
- ^ ab "Константы атрибутов файлов". MSDN . Microsoft . Получено 17 июля 2018 г. .
- ^ "КАК: использовать скрипт управления атрибутами файлов (Fileattributes.pl) в Windows 2000". Поддержка Microsoft . Microsoft . Получено 2 декабря 2012 г. .
- ^ "Определение: DOS Attrib". PC Magazine . Ziff Davis . Архивировано из оригинала 2 марта 2012 . Получено 2 декабря 2012 .
- ^ "Использование командлета PowerShell для работы с атрибутами файлов". Привет, Scripting Guy! Блог . Microsoft. 26 января 2011 г. Получено 3 декабря 2012 г.
- ^ «Как установить, просмотреть, изменить или удалить специальные разрешения для файлов и папок в Windows XP». Служба поддержки Microsoft . Microsoft. 7 мая 2007 г. Получено 2 декабря 2012 г.
- ^
chflags(2)
– Руководство по системным вызовам BSD - ^ ab
chflags(2)
– Руководство по системным вызовам FreeBSD - ^ ab
chflags(2)
– Руководство по системным вызовам и номерам ошибок DragonFly BSD - ^
chflags(2)
– Руководство по системным вызовам NetBSD - ^
chflags(2)
– Руководство по системным вызовам OpenBSD - ^
chflags(2)
– Руководство по системным вызовам Darwin и macOS - ^
ioctl_iflags(2)
– Руководство программиста Linux – Системные вызовы - ^ Шелленбаум, Марк. «Расширяемые интерфейсы атрибутов [PSARC/2007/315]». Архив материалов OpenSolaris ARC . illumos.org . Получено 10 марта 2023 г. .
- ^ "chmod(1)". Oracle Solaris 11.4 Reference Library: man pages section 1: User Commands . Oracle . Получено 10 марта 2023 г. .
- ^ "chmod(1)". Страницы man illumos . illumos.org . Получено 10 марта 2023 г. .
- ^ "ls(1)". Oracle Solaris 11.4 Reference Library: man pages section 1: User Commands . Oracle . Получено 10 марта 2023 г. .
- ^ "ls(1)". Страницы руководства illumos . illumos.org . Получено 10 марта 2023 г. .
- ^ "getattrat(3c)/setattrat(3c)". Oracle Solaris 11.4 Reference Library: man pages section 3: Basic Library Functions . Oracle . Получено 10 марта 2023 г. .
- ^ "getattrat(3c)/setattrat(3c)". Страницы руководства illumos . illumos.org . Получено 10 марта 2023 г. .
- ^ "sysattr(7)". Oracle Solaris 11.4 Reference Library: man pages section 7 . Oracle . Получено 10 марта 2023 г. .
Внешние ссылки
- Определение: Атрибут DOS Архивировано 2012-03-02 в Wayback Machine на PC Magazine
- Скрытые файлы в Unix-подобных операционных системах на Wayback Machine (архивировано 17 октября 2007 г.)
- Константы атрибутов файлов, в C (- runtime-library ), Microsoft Learn, 26.10.2022
- Константы атрибутов файлов, в ( Win32 -) C++ , Microsoft Learn, 06/09/2023