Атрибут файла
Атрибуты файлов — это тип метаданных , которые описывают и могут изменять поведение файлов и/или каталогов в файловой системе . Типичные атрибуты файла могут, например, указывать или указывать, является ли файл видимым, изменяемым, сжатым или зашифрованным. Доступность большинства атрибутов файла зависит от поддержки базовой файловой системы (например, 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 может поддерживать широкий спектр атрибутов файлов , которые могут быть перечислены с помощью lsattr
команды и изменены, где это возможно, chattr
команда.
Программы могут проверять и изменять атрибуты с помощью ioctl . операций [ 18 ]
Многие файловые системы Linux поддерживают лишь ограниченный набор атрибутов, и ни одна из них не поддерживает все необходимые атрибуты. chattr
может измениться. К файловым системам, поддерживающим хотя бы некоторые атрибуты, относятся ext4 , XFS и btrfs .
Атрибут | lsattr флаг | чата опция | Семантика и обоснование |
---|---|---|---|
Нет atime обновления
|
A
|
+A,-A
|
atime Запись не изменяется при чтении/доступе к файлу. |
Только добавление | a
|
+a,-a
|
Запись в файл разрешена только в режиме добавления. |
Неизменяемый | i
|
+i,-i
|
Предотвращает любые изменения содержимого или метаданных файла: в файл/каталог нельзя записать, удалить, переименовать или установить жесткую ссылку. |
Нет дампа | d
|
+d,-d
|
Файл пропускается дампа программа |
Безопасное удаление | s
|
+s,-s
|
Требует, чтобы при удалении все блоки данных файла заполнялись нулями . |
Синхронные обновления | S
|
+S,-S
|
Изменения записываются синхронно на базовый носитель файловой системы; эквивалент опции монтирования «sync» для затронутых файлов. |
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 ]
Атрибут | Компактный флаг для лс & chmod | Семантика и обоснование |
---|---|---|
appendonly
|
a
|
Запись в файл разрешена только в режиме добавления. |
immutable
|
i
|
Предотвращает любые изменения содержимого или метаданных файла (кроме времени доступа): файл/каталог нельзя записать, удалить или переименовать. |
nodump
|
d
|
Файл должен быть пропущен программами резервного копирования |
nounlink
|
u
|
Запрещает удаление файла, но разрешает другие изменения. |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Определение: атрибут файла» . Журнал ПК . Зифф Дэвис . Проверено 14 октября 2020 г.
- ^ «Атрибуты файла» . Компьютерная надежда . Проверено 2 декабря 2012 г.
- ^ Перейти обратно: а б «Что такое атрибуты файлов в Windows и как их изменить?» . База знаний . Университет Индианы . 11 октября 2011 года . Проверено 2 декабря 2012 г.
- ^ «Что такое скрытый файл?» . Справка по Windows 7 . Майкрософт . Проверено 2 декабря 2012 г.
- ^ «Почему свойство readonly для папок такое странное?» .
- ^ Перейти обратно: а б «Константы атрибутов файла» . MSDN . Майкрософт . Проверено 17 июля 2018 г.
- ^ «КАК: Использовать сценарий управления атрибутами файлов (Fileattributes.pl) в Windows 2000» . Поддержка Майкрософт . Майкрософт . Проверено 2 декабря 2012 г.
- ^ «Определение: атрибут DOS» . Журнал ПК . Зифф Дэвис . Архивировано из оригинала 2 марта 2012 года . Проверено 2 декабря 2012 г.
- ^ «Использование командлета PowerShell для работы с атрибутами файлов» . Привет, сценарист! Блог . Майкрософт. 26 января 2011 года . Проверено 3 декабря 2012 г.
- ^ «Как установить, просмотреть, изменить или удалить специальные разрешения для файлов и папок в Windows XP» . Поддержка Майкрософт . Майкрософт. 7 мая 2007 года . Проверено 2 декабря 2012 г.
- ^ BSD по системным вызовам Руководство –
- ^ Перейти обратно: а б FreeBSD по системным вызовам Руководство –
- ^ Перейти обратно: а б DragonFly BSD по системным вызовам и номерам ошибок Руководство –
- ^ NetBSD по системным вызовам Руководство –
- ^ OpenBSD по системным вызовам Руководство –
- ^ Darwin и macOS по системным вызовам Руководство –
- ^ Linux программиста Руководство – Системные вызовы –
- ^ Шелленбаум, Марк. «Расширяемые интерфейсы атрибутов [PSARC/2007/315]» . Архив материалов OpenSolaris ARC . иллюмос.орг . Проверено 10 марта 2023 г.
- ^ "чмод(1)" . Справочная библиотека Oracle Solaris 11.4: раздел 1 страниц руководства: Пользовательские команды . Оракул . Проверено 10 марта 2023 г.
- ^ "чмод(1)" . man-страницы Illumos . иллюмос.орг . Проверено 10 марта 2023 г.
- ^ "лс(1)" . Справочная библиотека Oracle Solaris 11.4: раздел 1 страниц руководства: Пользовательские команды . Оракул . Проверено 10 марта 2023 г.
- ^ "лс(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