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

Из Википедии, бесплатной энциклопедии

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

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

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

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

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

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

  • Сжатый (Compressed, C). Установленный атрибут означает, что Windows сохраняет этот файл на диске в сжатом виде.
  • Зашифрованный (Encrypted, E). Установленный атрибут означает, что Windows хранит этот файл на диске в зашифрованном виде.
  • Не Индексированный (Not Content-Indexed, I). Установленный атрибут означает, что файл не будет проиндексирован службой индексации содержимого или поиска 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. Архивировано из оригинала 16 января 2013 года.
  2. File attributes. Computer Hope. Дата обращения: 2 декабря 2012. Архивировано 30 ноября 2012 года.
  3. 1 2 In Windows, what are file attributes, and how can I change them? (англ.). Knowledge Base. Indiana University (11 октября 2011). Дата обращения: 2 декабря 2012. Архивировано 4 марта 2016 года.
  4. What is a hidden file? Windows 7 Help. Microsoft. Дата обращения: 2 декабря 2012. Архивировано 10 января 2013 года.
  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 мая 2012). Дата обращения: 2 декабря 2012. Архивировано 22 ноября 2012 года.
  6. Проект OpenNet: MAN chflags (2) Системные вызовы (FreeBSD и Linux). Дата обращения: 7 февраля 2015. Архивировано 22 апреля 2014 года.
  7. 1 2 chflags(2). Дата обращения: 7 февраля 2015. Архивировано 22 апреля 2014 года.
  8. 1 2 DragonFly On-Line Manual Pages : chflags(2). Дата обращения: 7 февраля 2015. Архивировано 22 апреля 2014 года.
  9. chflags(2) - NetBSD Manual Pages. Дата обращения: 7 февраля 2015. Архивировано 22 апреля 2014 года.
  10. OpenBSD manual pages. Дата обращения: 7 февраля 2015. Архивировано из оригинала 24 сентября 2015 года.
  11. chflags(2) Mac OS X Developer Tools Manual Page. Дата обращения: 7 февраля 2015. Архивировано 22 апреля 2014 года.
  12. Definition of: DOS Attrib. PC Magazine. Ziff Davis. Дата обращения: 2 декабря 2012. Архивировано из оригинала 2 марта 2012 года.
  13. Use a PowerShell Cmdlet to Work with File Attributes. Hey, Scripting Guy! Blog. Microsoft (26 января 2011). Дата обращения: 3 декабря 2012. Архивировано 29 января 2011 года.

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