Какие свойства задают атрибуты файлов как получить к ним доступ

Обновлено: 05.07.2024

Атрибуты файлов – это специальные системные метаданные, которые описывают свойства конкретного файла или целой папки. Часто под атрибутами подразумевают также некоторые дополнительные параметры, вроде, даты создания файла, или специализированную метаинформацию о конкретных типах данных (например, EXIF для изображений или ID3-теги для музыки). [Источник 1]

Содержание

Описание

Атрибут файла — это некая метка (или флаг), которая сообщает операционной системе о существовании особых правил для работы с конкретным файлом.

Место хранения атрибутов файлов

Место хранения атрибутов в частном случае зависит от реализации конкретной файловой системы. В качестве примера можно привести файловую систему Ext4 в силу ее популярности в ОС Linux. Как и во многих других файловых системах семейства UNIX\*Nix в Ext4 есть понятие inode (айнод). Изначальное название — index node — индексная точка/вершина. Inode — это специальная структура данных в файловой системе, которая хранит определенную информацию об объектах файловой системы — стандартных файлах, каталогах и т.д. Айноды хранятся в таблице айнодов, для которой файловая система выделяет необходимое количество блоков. Под определенной информацией подразумеваются отметки времени доступа, флаги, расширенные атрибуты, карты блоков данных и др. В официальной документации по ext4 те атрибуты, о которых идет речь в этой заметке, называются флагами (flags). Не стоит путать с расширенными атрибутами (extended attributes) — это несколько иная сущность.

Виды функций атрибутов (флагов)

Если обратится к man chattr то можно увидеть почти полный список атрибутов (флагов):

  • A — не обновлять время доступа к объекту. Теоретически установка этого атрибута должна повысить производительность файловой системы при работе с файлом (если не используются опции монтирования noatime, nodiaratime )
  • а — указывает, что в файл можно добавлять информацию, но нельзя удалять. Может быть установлен только суперпользователем.
  • d — указывает на то, что не нужно делать резервные копии файла. Файл будет проигнорирован командой dump.
  • i — указывает на то, что файл нельзя удалять и модифицировать, так же нельзя создать ссылку на файл. Может быть установлен только суперпользователем.
  • s — указывает, что при удалении файла место где был размещен файл будет перезаписано нулями. Для невозможности восстановления после удаления.
  • u — указывает на то, что при удалении файла его нужно куда-то сохранить. Наоборот, чтоб гарантировать возможность восстановления после удаления.
  • c — указывает на то, что файл сжат. Перед записью в этот файл ядро сжимает данные, а чтение соответственно возвращает разархивированные данные.

Сжатие данных

Атрибут «c» существует для того,чтобы указывать пользователю,что файл сжат. Теоретически кроме экономии дискового пространства выгодой от использования этого флага может быть и ускорение дисковых операций (зависит от алгоритма сжатия). Данный атрибут, к сожалению, не работает в ext4, так как данная ФС не поддерживает механизм сжатия. Но зато работает в новой файловой системе BTRFS, где на данный момент реализованы целых два алгоритма сжатия — LZO, и ZLIB. Как раз с алгоритмом LZO разработчикам удалось добиться увеличения производительности дисковых операций за счет того, что файлы стали занимать меньше места, соответственно времени на их запись и считывание нужно меньше, а операции сжатия и распаковки занимают совсем немного процессорного времени. К сожалению, от выборочного использования этого флага эффекта будет немного — так же как и с атрибутом «A» — для достижения максимального эффекта лучше будет использовать опцию монтирования, чтоб поведение опции было глобальным для всех файлов. [Источник 2]

Виды атрибутов для Windows

В Windows существует несколько атрибутов файлов, в том числе:

  • Атрибут архивного файла.
  • Атрибут каталога.
  • Скрытый атрибут файла.
  • Атрибут файла только для чтения.
  • Атрибут системного файла.
  • Атрибут метки тома

Для Windows с NTFS

  • Атрибут сжатого файла.
  • Шифрованный атрибут файла.
  • Индексированный атрибут файла.

Редкие атрибуты

Вот несколько дополнительных, хотя и более редких, атрибутов файлов, распознаваемых Windows:

  • Атрибут файла устройства.
  • Атрибут файла целостности.
  • Не индексированный атрибут файла содержимого.
  • Нет атрибута файла scrub.
  • Автономный атрибут файла.
  • Атрибут разреженного файла.
  • Атрибут временного файла.
  • Атрибут виртуального файла.

Атрибуты для Linux

В Linux каждый файл имеет свойство, характеризующее владельца файла. Управление доступом к файлам осуществляется с помощью атрибутов – специальных характеристик, имеющихся у каждого файла. Всего существует 12 характеристик. Девять из них можно разделить на три класса:

  • Разрешение/запрет на чтение файла владельцем, группой владельца и всеми остальными пользователями.
  • Разрешение/запрет на запись файла владельцем, его группой и всеми остальными.
  • Разрешение/запрет на запуск файла владельцем, группой владельца и остальными пользователями.

Размещение атрибутов

Пользователь может получать доступ к атрибутам, используя средства, предоставленные для этих целей файловой системой. Обычно разрешается читать значения любых атрибутов, а изменять — только некоторые. Например, пользователь может изменить права доступа к файлу (при условии, что он обладает необходимыми для этого полномочиями), но изменять дату создания или текущий размер файла ему не разрешается. Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS DOS (см. рисунок 1). На рисунке представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R — только для чтения, А — архивный, Н — скрытый, S — системный.


Способ размещения атрибутов UNIX

Другим вариантом является размещение атрибутов в специальных таблицах, когда в каталогах содержатся только ссылки на эти таблицы. Такой подход реализован, например, в файловой системе ufs ОС UNIX. В этой файловой системе структура каталога очень простая. Запись о каждом файле содержит короткое символьное имя файла и указатель на индексный дескриптор файла, так называется в ufs таблица, в которой сосредоточены значения атрибутов файла.В том и другом вариантах каталоги обеспечивают связь между именами файлов и собственно файлами. Однако подход, когда имя файла отделено от его атрибутов, делает систему более гибкой. Например, файл может быть легко включен сразу в несколько каталогов. Записи об этом файле в разных каталогах могут содержать разные простые имена, но в поле ссылки будет указан один и тот же номер индексного дескриптора. [Источник 3]

Использование атрибутов файлов

Атрибуты файлов существуют так, что вы или программа, которую вы используете, или даже сама операционная система, могут быть предоставлены или лишены определенных прав на файл или папку. Изучение общих атрибутов файлов может помочь вам понять, почему определенные файлы и папки называются «скрытыми» или «только для чтения», например, и почему взаимодействие с ними настолько отличается от взаимодействия с другими данными. Применение атрибута файла только для чтения к файлу будет препятствовать его редактированию или изменению каким-либо образом, если атрибут не будет отменен, чтобы разрешить доступ на запись. Атрибут «только для чтения» часто используется с системными файлами, которые нельзя изменять, но вы можете сделать то же самое с вашими собственными файлами, которые вам бы хотелось, если бы кто-то с доступом не редактировал.Файлы со скрытым набором атрибутов фактически будут скрыты от обычных представлений, что делает эти файлы очень трудными для случайного удаления, перемещения или изменения. Файл по-прежнему существует, как и любой другой файл, но поскольку атрибут скрытого файла переключается, он не позволяет случайному пользователю взаимодействовать с ним.

Атрибуты файлов и атрибуты папок

Атрибуты можно включать и выключать как для файлов, так и для папок, но последствия этого немного отличаются друг от друга. Когда атрибут файла, такой как скрытый атрибут, переключается на файл , этот единственный файл будет скрыт - ничего другого. Если тот же скрытый атрибут применяется к папке , вам предоставляется больше опций, чем просто скрыть папку: у вас есть возможность применить скрытый атрибут к папке в отдельности или к папке, ее подпапкам и всем ее файлам. Применение атрибута скрытого файла к подпапкам папки и ее файлам означает, что даже после того, как вы откроете папку, все файлы и папки, которые содержатся в ней, также будут скрыты. Первый вариант просто скрыть только папку позволит сделать вложенные папки и файлы видимыми, но просто скрыть основную корневую область папки.

Применение атрибутов файлов

Хотя все доступные атрибуты для файла имеют общие имена, которые вы видели в списках выше, они не все применяются к файлу или папке таким же образом.Небольшой выбор атрибутов можно включить вручную. В Windows вы можете сделать это, щелкнув правой кнопкой мыши или нажав и удерживая файл или папку, а затем включив или отключив атрибут из предоставленного списка.

В Windows больший выбор атрибутов также можно установить с помощью команды , доступной с панели управления . Управление атрибутом с помощью команды позволяет сторонним программам, таким как программное обеспечение резервного копирования , легко редактировать атрибуты файлов.Операционные системы Linux могут использовать команду chattr (Change Attribute) для установки атрибутов файлов, а chflags (Change Flags) используется в Mac OS X. [Источник 4]

Управление файлами.

Управление файлами в Windows XP осуществляется при помощи программы Проводник или папки Мой компьютер и сводится к выполнению следующих операций:

  • копирование, перемещение и удаление файлов (не рассматриваются в данном курсе);
  • установка стандартных атрибутов;
  • установка дополнительных атрибутов;
  • назначение разрешений.

Все эти операции доступны через пункт Свойства контекстного меню, вызываемого для файла, папки или произвольной их комбинации. В зависимости от того, на каком объекте была нажата правая кнопка мыши, окно свойств будет содержать различное количество вкладок.

Щелчок правой кнопкой мыши в пустом месте рабочей области окна проводника вызывает контекстное меню для родительского объекта. Таким образом, щелчок по пустому месту внутри папки вызовет контекстное меню этой папки, а щелчок по пустому месту при просмотре содержимого корневой папки диска вызовет контекстное меню диска.

Установка стандартных атрибутов файлов и папок.

Стандартные атрибуты файлов и папок являются устаревшим примитивным средством управления доступом к файлам и папкам. В Windows XP и других современных операционных системах существуют гораздо более гибкие и удобные механизмы для управления файлами.

Стандартные атрибуты файлов и папок устанавливаются на вкладке Общие окна свойств. Вид этой вкладки для файлов и папок во многом идентичен:

Свойства папки


Свойства файла


На вкладке Общие вы можете узнать:

  • реальный и занимаемый на диске размер файла или папки;
  • количество файлов и вложенных папок (для папки);
  • дату и время создания, дату и время последнего изменения и открытия (для файла).

Кроме того, при помощи флажков на этой вкладке устанавливается два стандартных атрибута Только для чтения и Скрытый. Вообще, Windows XP, как и любая другая ОС Microsoft поддерживает четыре стандартных атрибута для файлов и папок, расположенных на файловых системах FAT, FAT32 и NTFS.

Атрибут

Описание

Указывает, что файл был изменен с момента последнего архивирования или резервного копирования. Этот атрибут устанавливается большинством программ при создании и изменении файла. Этот атрибут сбрасывается программами-архиваторами и утилитами резервного копирования. Помогает архиваторам и утилитам резервного копирования обнаруживать измененные файлы.

Только для чтения

Указывает, что файл не может быть изменен. Установка этого атрибута не может служить для разграничения доступа к файлу или папке, а предназначена для того, чтобы избежать случайной перезаписи или удаления объекта. Большинство программ при попытке записать данные в такой файл или при попытке удалить его задают пользователю дополнительный вопрос о том, действительно ли он хочет удалить файл или папку.

Указывает, что файл или папка не отображается на экране при просмотре. Предназначен для скрытия важных системных файлов от пользователя. В большинстве программ работы с файлами, в том числе и в проводнике, есть параметр, позволяющий обойти действие этого атрибута.

Указывает, что файл или папка являются системными. В Windows 2000 используется только для обратной совместимости с MS-DOS, Windows 3.x и Windows 9x. Этим атрибутом помечены файлы, используемые для загрузки Windows 2000, в корневом каталоге системного и загрузочного дисков. Не может быть изменен через графические инструменты Windows 2000, но может быть изменен через командную строку или программами третьих производителей.


Изменение атрибутов файлов и папок происходит после нажатия кнопки ОК или Применить. Если вы изменили атрибуты для папки, то Windows XP попросит уточнить, нужно ли изменять атрибуты у вложенных папок или файлов.
Процесс изменения атрибутов обычно осуществляется довольно быстро, хотя и может занять много времени, если в операции задействовано несколько тысяч файлов и папок.

Изменение стандартных атрибутов из командной строки.

Для изменения стандартных атрибутов файлов и папок из командной строки служит команда attrib, которая имеет следующий синтаксис:

attrib[.exe] [+r|-r] [+a|-a] [+s|-s] [+h|-h] [[диск:][путь]имя_файла] [/s[/d]]

Описание ключей команды attrib:

Ключ

Описание

Устанавливает атрибут "только для чтения"

Снимает атрибут "только для чтения"

Устанавливает атрибут "архивный"

Снимает атрибут "архивный"

Устанавливает атрибут "системный"

Снимает атрибут "системный"

Устанавливает атрибут "скрытый"

Снимает атрибут "скрытый"

Задает местоположение папки и файла (файлов), атрибуты которых должны быть изменены. Допускается применение подстановочных символов ? и *

Задает обработку подходящих файлов в указанной папке и всех вложенных папках

Указывает, что нужно обрабатывать не только файлы, удовлетворяющие параметру имя_файла , но и папки, удовлетворяющие тому же условию

Для смены атрибутов у файлов и папок с установленным атрибутом "системный" или "скрытый" необходимо предварительно снять эти атрибуты.

Установка дополнительных атрибутов.

В Windows NT, 2000, а затем и в Windows XP к стандартным атрибутам файлов и папок были добавлены новые атрибуты, названные дополнительными. Все эти атрибуты могут быть установлены только для файлов и папок, расположенных на томах NTFS. Файловые системы FAT и FAT32 не поддерживают дополнительные атрибуты.

Для установки дополнительных атрибутов нужно в окне свойств файла или папки щелкнуть кнопку Другие. При этом откроется окно установки дополнительных атрибутов. Вид этого окна для файлов и папок идентичен:

Дополнительные атрибуты папки


Дополнительные атрибуты файла


Рассмотрим дополнительные атрибуты подробнее.

Атрибут

Описание

Папка (файл) готова для архивирования

Является стандартным атрибутом "архивный", который описан выше

Разрешить индексирование папки (содержимого) для быстрого поиска

Разрешает службе индексирования индексировать все файлы папки (или выбранный файл). При индексировании анализируется содержимое файла (в зависимости от его типа), полученная информация сохраняется в специальной базе данных, которая используется службой индексирования для последующего быстрого поиска файлов по содержанию и другим параметрам (автор или тема документа и т.п.)

Сжимать содержимое для экономии места на диске

Включает сжатие файлов. При установке этого атрибута включается сжатие для всех файлов внутри этой папки. Сжатие файлов может сэкономить значительный объем дискового пространства, особенно при сжатии папок с документами. Сжатие файлов не сильно замедляет работу с этими файлами в силу особенностей организации файловой системы NTFS и ее драйвера

Шифровать содержимое для защиты данных

Новый атрибут, впервые появился в Windows 2000. Включает шифрование данных. При установке этого атрибута включается шифрование для всех файлов внутри этой папки. Механизм шифрования данных имеет ряд особенностей, поэтому будет подробно рассмотрен ниже

Индексирование файлов достаточно сильно замедляет сохранение и изменение таких файлов. Причиной этого является полное переиндексирование содержимого файла при каждом его изменении.
Атрибуты сжатия и шифрования файла являются взаимоисключающими. В текущей версии NTFS шифрованные файлы не могут сжиматься средствами операционной системы.

Шифрование файлов.

Шифрованная файловая система (Encrypting File System, EFS) поддерживает шифрование файлов, хранимых на томах NTFS. Шифрование в EFS базируется на технологии открытого ключа и обеспечивается интегрированной в систему службой. Это позволяет:

  • облегчить управление зашифрованными файлами;
  • защитить важные файлы от несанкционированного доступа к ним других пользователей и злоумышленников даже в случае изъятия жесткого диска из компьютера и подключения его к другому компьютеру;
  • обеспечить прозрачную дешифрацию файлов при обращении к ним законного владельца;
  • производить прозрачное копирование и перемещение шифрованных файлов - все файловые операции производятся без дешифрации файлов;
  • хранить шифрованные данные пользователя на различных компьютерах в локальной сети и в перемещаемых профилях - сертификат пользователя хранится на сервере в центре сертификатов, что позволяет использовать этот сертификат с любого компьютера в домене.

Пользователь, обладающий закрытым ключом к зашифрованному файлу, может открывать этот файл и работать с ним, как с обычным документом - расшифровывание будет производиться системой автоматически. Пользователю, не имеющего такого ключа, файл не доступен.
При работе с шифрованными файлами Windows XP поддерживает безопасность на должном уровне. Это означает, что шифруются все рабочие копии файла. При необходимости Вы можете осуществить шифрование и временных файлов. Данные зашифрованных файлов не сохраняются в файле подкачки. Все это гарантирует, что данные зашифрованного файла не появятся на диске в расшифрованном виде.
Кроме того, EFS содержит специальный механизм, предназначенный для восстановления доступа к шифрованным файлам в случае утери закрытого ключа. Это может произойти при удалении сертификата или пользователя, которому этот сертификат принадлежал. Механизм восстановления доступа к зашифрованным данным осуществляется специальным агентом восстановления, параметры которого определяются групповыми политиками. В общем случае работа агента сводится к предоставлению специального ключа, который может быть использован для расшифровывания файла. Пользователи, имеющие право восстанавливать данные, зашифрованные другими пользователями, определяются в групповых политиках.

Шифрованная файловая система может использоваться для шифрования файлов, расположенных на других компьютерах. Однако данные в этом случае передаются по сети в незашифрованном виде. При необходимости шифровать данные и при передаче по локальной сети необходимо использовать специализированные протоколы (SSL, IPSec и т.п.).

Для шифрования файла необходимо соблюдение следующих условий:

  • файл не должен быть сжатым (Windows XP самостоятельно отслеживает выполнение этого условия и, при необходимости, разархивирует файл);
  • пользователь, шифрующий файл, должен иметь цифровой сертификат, позволяющий ему шифровать файлы (Windows XP самостоятельно генерирует запрос на получение сертификата в момент шифрования файла).

Процесс шифрования файла.

Механизм шифрации файлов заключается в следующем: на томе NTFS создается папка, которая будет зашифрована. Чтобы ее зашифровать, откройте окно Свойства для этой папки, на вкладке Общие нажмите кнопку Другие и включите флажок Шифровать содержимое для защиты данных. Все файлы, помещенные в эту папку будут зашифрованы, а сама папка помечена как зашифрованная. На самом деле шифруются только файлы в этой папке, а не сама папка.

Для фактического шифрования файла используются быстрые ключи симметричного шифрования. Для шифрования каждого блока файла используется отдельный симметричный ключ. Все симметричные ключи, использованные для шифрования файла, шифруются двумя ключами - открытым ключом пользователя и открытым ключом агента восстановления. В зашифрованном виде эти ключи сохраняются в полях Data Decryption Field (DDF) и Data Recovery Field (DRF).

Дешифрация.

Чтобы файл сделать незашифрованным отключите флажок Шифровать содержимое для защиты данных (Свойства файла -> Другие).

Использование агента восстановления.

Если открытый ключ владельца файла недоступен, то агент восстановления может расшифровать файл, воспользовавшись своим закрытым ключом для расшифровывания поля DRF. Если агент восстановления находится на другом компьютере в сети, то для расшифровывания файл должен быть перемещен на тот компьютер, на котором находится закрытый ключ агента восстановления. Также можно перенести закрытый ключ агента на компьютер, содержащий восстанавливаемые файлы. Однако копирование закрытого ключа на другой компьютер является серьезным нарушением безопасности, поэтому настоятельно не рекомендуется.

На локальном компьютере агентом восстановления по умолчанию является локальный администратор. Если компьютер подключен к домену, то агентом восстановления по умолчанию является администратор домена.

Регулярная смена агентов восстановления обеспечит более высокий уровень безопасности системы. Однако при смене агента восстановления, старый агент восстановления теряет доступ к файлу и не может быть использован для его восстановления. Поэтому Microsoft рекомендует хранить сертификаты восстановления и закрытые ключи до тех пор, пока не будут обновлены все файлы, при шифровании которых использовались эти ключи.

Лицо, назначенное агентом восстановления, обладает специальным сертификатом, содержащим закрытый ключ, предназначенный для восстановления шифрованных файлов. Агент восстановления не должен предпринимать специальных действий для получения доступа к зашифрованному файлу. Если его ключ может быть использован для расшифровывания поля DRF, Windows XP автоматически предоставит ему доступ к файлу. При восстановлении зашифрованного файла рекомендуется сразу же произвести его дешифрацию, отключив флажок Шифровать содержимое для защиты данных в свойствах файла.

Шифрование файлов из командной строки.

Все операции по шифрованию и расшифровыванию файлов также могут быть выполнены из командной строки при помощи утилиты cipher, которая имеет следующий синтаксис:

cipher[.exe] [/E|/D] [/S:папка] [/A] [/I] [/F] [/Q] [/H] [имя_файла[. ]]
cipher[.exe] /K
cipher[.exe] /W:папка

Описание ключей команды cipher:

Ключ

Описание

Шифрует указанные файлы и папки. При шифровании папок атрибуты устанавливаются таким образом, что все вновь добавляемые в папку файлы также будут шифроваться.

Расшифровывает указанные файлы и папки. При расшифровывании папок также расшифровываются все файлы в них.

Распространяет операцию на все вложенные папки, содержащиеся в указанной папке.

Распространяет операцию как на файлы, так и на папки. Обратите внимание, что при модификации шифрованного файла в нешифрованной папке, он может быть расшифрован. Поэтому шифруйте не только файл, но и папку, в которой он содержится.

Продолжать операцию при возникновении проблем с одним из файлов. Если этот ключ не указан, то процесс прерывается.

Выполняет операцию шифрования для всех файлов, даже если они уже зашифрованы. Если этот ключ не указан, то шифруются только нешифрованные файлы. При указании ключа файл сначала дешифруется, после чего шифруется заново. Это ключ удобен в случаях замены агента восстановления.

Во время процесса шифрования/расшифровывания выводит на экран только наиболее важную информацию.

Обрабатывает файлы с атрибутами "скрытый" и "системный". По умолчанию такие файлы не обрабатываются.

Имя шифруемого файла (файлов), папки или шаблон. Вы можете указывать несколько файлов или папок, разделяя их пробелами.

Создает для пользователя, запустившего cipher, новый ключ для шифрования файлов. При указании этого ключа все остальные ключи игнорируются.

Затирает все неиспользуемое пространство на диске. При указании этого ключа все остальные ключи игнорируются. Папка, указываемая как параметр, может быть расположена в любом месте диска. Если эта папка является точкой подключения другого тома, то будет затерто неиспользуемое пространство на этом томе.

Без параметров cipher отображает информацию о шифровании текущей папки и всех файлов, в ней содержащихся.

Отключение EFS.

Администратор может полностью запретить использовать шифрование файлов очистив параметры Политики открытого ключа. В операционной системе Windows XP шифрование файлов не возможно без агента восстановления, а значит пустая политика восстановления делает шифрование невозможным и отключает EFS.

Как получить доступ к атрибутам из контекстного меню Windows?

Что такое файловые атрибуты?

Любой из файлов Windows содержит в себе некие метаданные с ним ассоциированные, что и определяет к этому файлу отношение со стороны Windows. Эти метаданные и получили название файловых атрибутов, которые несут в себе сведения о самом файле. У атрибутов есть только два состояния: установлен или отсутствует. На манер флажков включено/выключено. Подробнее об этом можно прочитать в одноимённой статье про файловые атрибуты.

Как добавить пункт Файловые атрибуты в контекстное меню?

Для введения изменений вам необходимы права администратора. Ну, и конечно, для изменения или задачи атрибутов к какому-то файлу вам нужно быть её владельцем. Помним об этом.

Самые распространённые файловые атрибуты Windows

атрибуты windows

Откроем доступ к атрибутам из контекстного меню

Предлагаю для скачивания zip-архив, в состав которых входят два файла реестра с характерными названиями. Для внесения изменений в реестр вам потребуются соответствующие права.

После запуска первого из них контекстное меню по работе с конкретными файлом или папкой заметно расшириться, и после этого вы сможете управлять свойствами файлов, придавая им определённые правила распознавания системой:

изменения в реестре

Вот как это меню будет выглядеть для простого документа Word:

Доступ к атрибутам из контекстного меню

Так, применив команду Установить файл Скрытым, файл немедленно изменится в своих свойствах, в чём легко убедиться из меню Свойства:

атрибут скрытый

Если что-то пойдёт не так или меню для некоторых системных папок будет отображаться некорректно, то отменить возможность изменять атрибуты можно вторым файлом из архива.

Думаю, некоторые из вас теперь смогут значительно расширить круг своих возможностей при работе с системой и конкретными файлами/папками.

Успехов нам всем

2 комментариев

К ак и в реальном мире, в мире компьютеров и интернета есть вещи, которыми мы можем обладать и есть вещи, которыми мы обладать не можем. А не можем потому, что не имеем на них прав. Объяснять, для чего собственно были придуманы все эти разрешения и права доступа, полагаем, не нужно. Если бы их не было, любой пользователь мог бы просматривать, изменять и удалять любые не принадлежащие ему файлы не только на локальных машинах, но и на серверах.

С понятиями прав и разрешений на файлы более или менее знакомы все пользователи. Но что в действительности они собой представляют и как система определяет, какой файл можно просматривать или изменять, а какой нет? Давайте попробуем разобраться.

Структура файла в NTFS

Начнем с того, что большая часть всех данных хранится на дисках в виде файлов, к которыми пользователи тем или иным образом получают доступ. Пример, когда пользователь получает доступ к файлам не напрямую, а через веб-сервер, мы рассматривать не будем. Скажем лишь, что такие данные, помимо прочих разрешений, также имеют особое разрешение share , наличие которого проверяется при обращении к удалённому серверу.

Атрибуты и ACL

При работе через сервер права доступа выдаются сервером, при непосредственной же работе с дисками через интерфейс локальной машины права доступа выдаются на уровне файловой системы NTFS. Как это работает? А вот как. Каждый записанный в NTFS файл представляет собой не только данные, помимо них он также хранит служебную информацию — атрибуты и ACL (Access Control List). Кстати, атрибуты и ACL имеют не только файлы, но и папки.

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

Что такое атрибуты файла, вы, в принципе, должны знать сами. Скрытый, системный, индексируемый или неиндексируемый, доступный только для чтения, готовый к архивированию — всё это называется атрибутами и просматривается в свойствах файла или папки. За права же доступа отвечают метаданные ACL. И если атрибуты описывают свойства объекта, то ACL указывает, кто именно и какие действия с этим объектом может производить. ACL также именуют разрешениями.

Структуру ACL можно представить в виде таблицы с тремя колонками.

Структура ACL

Первая колонка содержит уникальный идентификатор пользователя (SID) , вторая — описание прав (read, write и т.д.) , третья — флаг , указывающий разрешено ли конкретному SID пользоваться этими правами или нет. Он может принимать два значения: true (да) и false (нет).

SID

Основных прав доступа в NTFS четыре:

• Read разрешает только чтение файла.
• Write разрешает чтение и запись.
• Modify разрешает чтение, запись, переименование, удаление и редактирование атрибутов.
• Full Control даёт пользователю неограниченную власть над файлом. Помимо всего перечисленного, имеющий права Full Control пользователь может редактировать метаданные ACL. Все прочие права доступа возможность изменения ACL не предоставляют.

Владелец объекта

Кроме атрибутов и разрешений, каждый объект в файловой системе NTFS имеет своего владельца. Таковым может выступать локальный администратор, пользователь, TrustedInstaller, система и т.д. Владелец может изменять права доступа к своему файлу, однако локальный администратор имеет право назначить владельцем такого файла самого себя, следовательно, получить на него полные права, то есть Full Control .

Наследование

Так как файлов на диске может быть очень много и большая их часть располагается во вложенных каталогах, для удобного и быстрого изменения их прав доступа необходим какой-то механизм. Для этого в NTFS есть такая вещь как наследование .

Наследование

Правило наследования простое и укладывается оно в одну формулировку: при своём создании каждый дочерний объект автоматически наследует разрешения ближайшего родительского объекта. Приведём пример. Если вы создали папку «А», а в ней папку «Б», то папка «Б» будет иметь те же разрешения, что и папка «А». Следовательно, все файлы в папке «Б» получат разрешения папки «А» .

Отключение наследования

Явные и неявные разрешения

Все разрешения, которые наследуются автоматически, именуются неявными (implicit). И напротив, разрешения, которые устанавливаются вручную путём изменения ACL, называются явными (explicit). Отсюда вытекают два правила:

На одном уровне вложенности запрещающее разрешение имеет более высокий приоритет. Если для одного SID было задано и разрешающее, и запрещающее разрешение, то действовать будет запрет.
Явное разрешение имеет более высокий приоритет, чем неявное. Если запрет на какой-то объект был унаследован от родителя, а затем на него было установлено явное разрешение, то оно получит приоритет.

Таким образом в NTFS формируются комбинации разрешений и запретов. И если расположить приоритеты разрешений в порядке убывания, то получим примерно такую картину:

1. Явный запрет
2. Явное разрешение
3. Неявный запрет
4. Неявное разрешение

Разрешения

Особенности наследования при копировании и перемещении файлов

До этого момента мы говорили о наследовании при создании файлов в родительских или дочерних каталогах. В случаях копирования или перемещения объекта правила наследования меняются .

• При копировании объекта с одного тома на другой, например, с диска «С» на диск «D» копируемый объект всегда получает права или разрешения того раздела или расположенного в нём каталога, в который он копируется. Те же правила действуют при перемещении файлов между разными томами.

• При перемещении в пределах одного тома, перемещаемый объект сохраняет свою ACL, изменяется только ссылка на него в таблице MFT.

• При копировании в пределах одного тома копируемый объект получает ACL от ближайшего вышестоящего родительского каталога.

Для начала этого вполне достаточно, чтобы иметь более-менее чёткое представление о том, как работают законы разрешений в NTFS. На самом деле разрешений в файловой системе существует гораздо больше разрешений. Большинству простых пользователей их знать необязательно, а вот будущим системным администраторам такие знания могут очень даже пригодится.

Читайте также: