Метаданные, связанные с компьютерным файлом, которые определяют поведение файловой системы.
Атрибуты файлов — это тип метаданных , которые описывают и могут изменять поведение файлов и/или каталогов в файловой системе . Типичные атрибуты файла могут, например, указывать или указывать, является ли файл видимым, изменяемым, сжатым или зашифрованным. Доступность большинства атрибутов файлов зависит от поддержки базовой файловой системы (например, 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 может отображать семь упомянутых атрибутов, но не может устанавливать или очищать системный атрибут. [5] Windows PowerShell , ставшая компонентом Windows 7 и более поздних версий, содержит две команды, которые могут читать и записывать атрибуты: Get-ItemProperty
и Set-ItemProperty
. [10] Чтобы изменить атрибут файла в Windows NT , пользователь должен иметь соответствующие разрешения файловой системы , известные как « Запись атрибутов» и «Запись расширенных атрибутов» . [11]
Юникс и POSIX
В Unix и Unix-подобных системах, включая POSIX -совместимые системы, каждый файл имеет «режим», содержащий 9-битные флаги, управляющие разрешениями на чтение, запись и выполнение для каждого владельца файла, группы и всех других пользователей (см. Разрешения файловой системы) . §Традиционные разрешения Unix для получения более подробной информации), а также битовые флаги setuid и setgid и битовый флаг «липкий» . Режим также определяет тип файла (обычный файл, каталог или какой-либо другой специальный тип).
4.4BSD и производные
В 4.4BSD и 4.4BSD-Lite файлы и каталоги (папки) принимали четыре атрибута, которые могли быть установлены владельцем файла или суперпользователем (атрибуты «Пользователь»), и два атрибута, которые могли быть установлены только суперпользователем ( атрибуты «Система»): [12]
- (Пользователь) Без дампа : если этот параметр установлен, это означает, что файл или каталог не следует сохранять во время операции резервного копирования .
- (Пользовательский и системный) Неизменяемый : если установлен, указывает, что файл или каталог не следует изменять. Попытки открыть файл для записи, создать файл в каталоге, удалить файл из каталога, переименовать файл в каталоге, переименовать файл или каталог или удалить файл или каталог завершатся ошибкой с ошибкой разрешений.
- (Пользователь и система) Только добавление : если установлено, указывает, что файл следует только добавлять.
- (Пользователь) Непрозрачный : если установлен для каталога, указывает, что каталог непрозрачен при просмотре через стек объединения .
Во 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 может поддерживать широкий спектр атрибутов файлов , которые могут быть перечислены с помощью команды и изменены, где это возможно, с помощью этой команды. Программы могут проверять и изменять атрибуты с помощью операций ioctl . [18]lsattr
chattr
Многие файловые системы 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]
Смотрите также
Рекомендации
- ^ «Определение: атрибут файла» . Журнал ПК . Зифф Дэвис . Проверено 14 октября 2020 г. .
- ^ «Атрибуты файла». Компьютерная надежда . Проверено 2 декабря 2012 г.
- ^ ab «Что такое атрибуты файлов в Windows и как их изменить?». База знаний . Университет Индианы . 11 октября 2011 года . Проверено 2 декабря 2012 г.
- ^ «Что такое скрытый файл?». Справка по Windows 7 . Майкрософт . Проверено 2 декабря 2012 г.
- ^ ab «Вы не можете просмотреть или изменить атрибуты папок «Только для чтения» или «Система» в Windows Server 2003, в Windows XP, в Windows Vista или в Windows 7». Поддержка Майкрософт . Майкрософт. 31 мая 2012 года . Проверено 2 декабря 2012 г.
- ^ «Почему свойство readonly для папок такое странное?»
- ^ ab «Константы атрибутов файла». MSDN . Майкрософт . Проверено 17 июля 2018 г.
- ^ «КАК: Использовать сценарий управления атрибутами файлов (Fileattributes.pl) в Windows 2000» . Поддержка Майкрософт . Майкрософт . Проверено 2 декабря 2012 г.
- ^ «Определение: атрибут DOS» . Журнал ПК . Зифф Дэвис . Проверено 2 декабря 2012 г.
- ^ «Используйте командлет PowerShell для работы с атрибутами файлов» . Привет, сценарист! Блог . Майкрософт. 26 января 2011 года . Проверено 3 декабря 2012 г.
- ^ «Как установить, просмотреть, изменить или удалить специальные разрешения для файлов и папок в Windows XP». Поддержка Майкрософт . Майкрософт. 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 . иллюмос.орг . Проверено 10 марта 2023 г.
- ^ "chmod(1)". Справочная библиотека Oracle Solaris 11.4: раздел 1 страниц руководства: Пользовательские команды . Оракул . Проверено 10 марта 2023 г.
- ^ "chmod(1)". man-страницы Illumos . иллюмос.орг . Проверено 10 марта 2023 г.
- ^ "ls(1)". Справочная библиотека Oracle Solaris 11.4: раздел 1 страниц руководства: Пользовательские команды . Оракул . Проверено 10 марта 2023 г.
- ^ "ls(1)". man-страницы Illumos . иллюмос.орг . Проверено 10 марта 2023 г.
- ^ "getattrat(3c)/setattrat(3c)". Справочная библиотека Oracle Solaris 11.4: раздел 3 страниц руководства: Основные функции библиотеки . Оракул . Проверено 10 марта 2023 г.
- ^ "getattrat(3c)/setattrat(3c)". man-страницы Illumos . иллюмос.орг . Проверено 10 марта 2023 г.
- ^ "sysattr(7)" . Справочная библиотека Oracle Solaris 11.4: раздел 7 страниц руководства . Оракул . Проверено 10 марта 2023 г.
Внешние ссылки
- Определение: DOS Attrib. Архивировано 2 марта 2012 г. в журнале Wayback Machine on PC Magazine.
- Скрытые файлы в Unix-подобных операционных системах на Wayback Machine (архивировано 17 октября 2007 г.)
- Константы атрибутов файлов, на C ( -runtime-library ), Microsoft Learn, 26.10.2022
- Константы атрибутов файлов, в ( Win32 -) C++ , Microsoft Learn, 09.06.2023