Атрибут файла

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Атрибут файла (англ. file attribute) — метаданные, которые описывают файл. Атрибут может находиться в двух состояниях: либо установленный, либо снятый. Атрибуты рассматриваются отдельно от других метаданных, таких как даты, расширения имени файла или права доступа. Каталоги и другие объекты файловой системы также могут иметь определённые атрибуты. Также существуют расширенные атрибуты файлов, хранящие данные другого типа.

Разновидности[править | править код]

DOS и Microsoft Windows[править | править код]

В операционных системах DOS и Microsoft Windows, существуют четыре атрибута:[1][2][3]

  • Архивный. Когда этот атрибут установлен, это означает, что файл был изменён со времени проведения последнего резервного копирования. ПО, с помощью которого выполняется резервное копирование, также отвечает за снятие этого атрибута.
  • Скрытый. Файл с установленным атрибутом считается скрытым. Это означает, что команды MS-DOS (dir) и программы Windows (такие как Проводник) по умолчанию не будут отображать этот файл, если не включён специальный режим[4] .
  • Системный. Файл с установленным атрибутом считается системным — таким, существование которого в неизменённом виде критически важно для нормальной работы системы. По умолчанию команды MS-DOS (dir) и программы Windows (такие как Проводник) не будут отображать этот файл, если не включён специальный режим.
  • Только чтение. Установленный атрибут означает, что содержимое файла нельзя изменять. Как правило, программы для Windows игнорируют этот атрибут, если он установлен для каталогов[5].

С выходом новых версий системы Windows в NTFS появились дополнительные атрибуты:

  • Сжатый (Compressed). Установленный атрибут означает, что Windows сохраняет этот файл на диске в сжатом виде.
  • Зашифрованный (Encrypted). Установленный атрибут означает, что Windows хранит этот файл на диске в зашифрованном виде.
  • Проиндексированный (Indexed). Означает, что соответствующие подсистемы Windows не будут включать содержимое файла в поисковый индекс.

4.4BSD-Lite и производные от неё системы[править | править код]

В 4.4BSD и 4.4BSD-Lite файлы и каталоги могут получить четыре атрибута, которые устанавливаются владельцем файла или пользователем с повышенными правами (отмеченные как «User»). Еще два атрибута могут устанавливаться только пользователем с повышенными правами («System»).[6]

  • (User) No-dump: Установленный атрибут означает, что файл или каталог не должен копироваться во время резервного копирования.
  • (User and System) Immutable: Означает, что файл или каталог могут оставаться неизменными. Будут блокированы попытки открытия файла для записи, попытки переименовать его, переименовать или создать новый файл в каталоге.
  • (User and System) Append-only: К файлу можно только добавлять информацию.
  • (User) Opaque: Используется определённая особенность монтирования файловых систем в ОС.

В FreeBSD ещё появился следующий атрибут[7] (также поддерживается в DragonFly BSD):[8]:

  • (User and System) No-unlink: Означает, что файл или каталог нельзя удалять. Попытки сделать это закончатся сообщением про ошибку доступа.

FreeBSD также поддерживает:[7]

  • (System) No-archive: установленный атрибут означает, что файл или каталог нельзя архивировать (средствами файловой системы).
  • (System) Snapshot: Файл принадлежит к специальному типу файлов, обрабатываемых системой. Этот атрибут устанавливается только системой, даже пользователь с повышенными правами не может его изменить.

Кроме того, DragonFly BSD поддерживает:[8]

  • (User and System) No-history: История изменений не должна сохраняться для данного файла или каталога.
  • (User) Swapcache и (System) Swapcache: Определяет уверенные особенности работы с SSD.
  • (System) Archived: Противоположное к No-archive.

NetBSD[9] и OpenBSD:[10] также поддерживают (System) Archived.

В OS X был добавлен ещё один атрибут[11]

  • (User) Hidden: Означает, что по умолчанию файл с таким атрибутом не будет отображаться средствами графического интерфейса, хотя команда ls всё равно будет показывать его.

В Solaris для ZFS также существуют атрибуты:

  • av_quarantined: Доступ к файлу ограничен до снятия карантина антивируса.
  • av_modified: Означает, что текущая версия файла не проверена антивирусом.

Изменение значения атрибута[править | править код]

В DOS, OS/2 и командной строке Windows, атрибуты файла могут быть изменены командой attrib[3][12] С помощью Проводника Windows также можно изменять некоторые атрибуты, но не атрибут «системный»[5] Windows PowerShell имеет пару команд для чтения/записи атрибутов: Get-ItemProperty та Set-ItemProperty.[13]

В 4.4BSD и её наследниках для просмотра атрибутов используется команда ls, а для изменения — chflags.

В Linux используются команды chattr для изменения и lsattr для просмотра атрибутов.

В Solaris используются команды chmod для изменения и ls для просмотра атрибутов.

В большинстве случаев пользователь должен иметь соответствующие права доступа для изменения атрибута.

Примечания[править | править код]

  1. Definition of: file attribute. PC Magazine. Ziff Davis. Проверено 2 декабря 2012.
  2. File attributes. Computer Hope. Проверено 2 декабря 2012.
  3. 1 2 In Windows, what are file attributes, and how can I change them? (англ.). Knowledge Base. Indiana University (11 October 2011). Проверено 2 декабря 2012.
  4. What is a hidden file?. Windows 7 Help. Microsoft. Проверено 2 декабря 2012.
  5. 1 2 You cannot view or change the Read-only or the System attributes of folders in Windows Server 2003, in Windows XP, in Windows Vista or in Windows 7. Microsoft Support. Microsoft (31 May 2012). Проверено 2 декабря 2012.
  6. Проект OpenNet: MAN chflags (2) Системные вызовы (FreeBSD и Linux)
  7. 1 2 chflags(2)
  8. 1 2 DragonFly On-Line Manual Pages : chflags(2)
  9. chflags(2) - NetBSD Manual Pages
  10. OpenBSD manual pages
  11. chflags(2) Mac OS X Developer Tools Manual Page
  12. Definition of: DOS Attrib. PC Magazine. Ziff Davis. Проверено 2 декабря 2012.
  13. Use a PowerShell Cmdlet to Work with File Attributes. Hey, Scripting Guy! Blog. Microsoft (26 January 2011). Проверено 3 декабря 2012.

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