Разрешения и атрибуты файлов Windows

15

Я несколько озадачен всей схемой безопасности файлов Windows. Я работаю в Unix, поэтому не до конца понимаю взаимосвязь между правами доступа к файлам / настройками безопасности и атрибутами; только для чтения, который может иметь файл.

Например, если я вхожу в систему как администратор в свой ящик и у меня есть файл, который позволяет администраторам получить полный контроль, но с установленным атрибутом только для чтения, это означает, что я не могу записать в этот файл? Есть ли способ, кроме удаления атрибута «только для чтения», который я могу записать в файлы, которые якобы имеют полный контроль? Если нет, то в чем преимущество полного контроля, если у вас нет полного контроля?

Прелич
источник
1
Фантастический вопрос
Джим Б
Атрибуты файлов Windows аналогичны флагам файлов Unix
Chris S
Я отредактировал это, чтобы сделать его более общим, поскольку эти принципы применяются ко всем современным версиям Windows, а не только к Server 2003.
MDMarra
На самом деле возможно быть другим в 2012 году и выше
Джим Б

Ответы:

16

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

Файлы и папки могут иметь дополнительные атрибуты, как и файлы в большинстве файловых систем * nix. «Скрытое» приходит на ум в качестве примера на обеих платформах.

В Windows некоторые из дополнительных атрибутов включают системный, только для чтения, архив, зашифрованный и сжатый. Когда у вас есть полный контроль (или изменение), у вас есть возможность изменять эти атрибуты, но, как вы обнаружили, файл только для чтения доступен только для чтения, даже кому-то с полным контролем. Несмотря на то, что полный контроль дает вам возможность изменять атрибуты файла, он не переопределяет их автоматически, подобно тому ls, как корневой пользователь по умолчанию не показывает скрытый файл в * nix.

MDMarra
источник
Не существует такого понятия, как «скрытый» NTFS-файл, использующий атрибут. Файлы могут быть скрыты с помощью потоков. NTFS поддерживает любые атрибуты, необходимые для любого приложения, использующего поле расширенных атрибутов ($ EA), поэтому вы можете хранить разрешения файлов Unix в файловой системе NTFS
Jim B
6
Я не говорил, что «скрытый» является функцией NTFS в любом месте, но «скрытый», безусловно, является атрибутом, который вы можете установить для файла или папки. Я действительно понятия не имею, в чем смысл вашей попытки.
MDMarra
Что это за скрытый атрибут в Unix?
Эдвард Томсон
Скрытый был, возможно, плохим примером, но иллюстрировал мою точку зрения. По сути, это не «скрытый» атрибут, а только файлы с префиксом точки. Рассматриваемые атрибуты файла Windows на самом деле более похожи на что-то вроде файловых флагов в unix: freebsd.org/cgi/man.cgi?query=chflags&sektion=1 .
MDMarra
4

Разрешение - это контроль безопасности. Атрибут применяется независимо от участника безопасности, пытающегося выполнить операцию.

Есть гораздо больше атрибутов, чем вы видите в командной строке. К ним относятся, если файл представляет собой ссылку, зашифрованный, каталог (тип файла) и целостность (низкий, средний или высокий).

Константы файловых атрибутов
http://msdn.microsoft.com/en-us/library/windows/desktop/gg258117%28v=vs.85%29.aspx

FILE_ATTRIBUTE_ARCHIVE 32 (0x20)

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

FILE_ATTRIBUTE_COMPRESSED 2048 (0x800)

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

FILE_ATTRIBUTE_DEVICE 64 (0x40)

Это значение зарезервировано для использования системой.

FILE_ATTRIBUTE_DIRECTORY 16 (0x10)

Дескриптор, который идентифицирует каталог.

FILE_ATTRIBUTE_ENCRYPTED 16384 (0x4000)

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

FILE_ATTRIBUTE_HIDDEN2 (0x2) Файл или каталог скрыты. Он не входит в обычный список каталогов.

FILE_ATTRIBUTE_INTEGRITY_STREAM 32768 (0x8000)

Каталог или поток пользовательских данных настроен на целостность (поддерживается только на томах ReFS). Он не входит в обычный список каталогов. Настройка целостности сохраняется с файлом, если он переименован. Если файл копируется, для файла назначения будет установлена ​​целостность, если для исходного файла или каталога назначения установлена ​​целостность.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: этот флаг не поддерживается до Windows Server 2012.

FILE_ATTRIBUTE_NORMAL 128 (0x80)

Файл, для которого не установлены другие атрибуты. Этот атрибут действителен только при использовании отдельно.

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 8192 (0x2000)

Файл или каталог не должны индексироваться службой индексации содержимого.

FILE_ATTRIBUTE_NO_SCRUB_DATA 131072 (0x20000)

Поток пользовательских данных не должен читаться фоновым сканером целостности данных (AKA scrubber). При установке в каталог он обеспечивает только наследование. Этот флаг поддерживается только в томах Storage Spaces и ReFS. Он не входит в обычный список каталогов.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: этот флаг не поддерживается до Windows 8 и Windows Server 2012.

FILE_ATTRIBUTE_OFFLINE 4096 (0x1000)

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

FILE_ATTRIBUTE_READONLY 1 (0x1)

Файл только для чтения. Приложения могут читать файл, но не могут писать или удалять его. Этот атрибут не учитывается в каталогах. Дополнительные сведения см. В разделе «Невозможно просмотреть или изменить атрибуты« Только для чтения »или системные атрибуты папок в Windows Server 2003, Windows XP, Windows Vista или Windows 7.

FILE_ATTRIBUTE_REPARSE_POINT 1024 (0x400)

Файл или каталог, с которым связана точка повторного анализа, или файл, который является символической ссылкой.

FILE_ATTRIBUTE_SPARSE_FILE 512 (0x200)

Файл, который является разреженным файлом.

FILE_ATTRIBUTE_SYSTEM 4 (0x4)

Файл или каталог, который операционная система использует часть или использует исключительно.

FILE_ATTRIBUTE_TEMPORARY 256 (0x100)

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

FILE_ATTRIBUTE_VIRTUAL 65536 (0x10000)

Это значение зарезервировано для использования системой.

Грег Аскью
источник
Это не совсем отвечает на вопрос. Они задавались вопросом, почему доступ только для чтения заменяет привилегию «полного контроля». Эти атрибуты используются в программах.
Натан С
1
Вы также смешали атрибуты FAT-Style и NTFS - не то, что больше нет большой разницы, но бывают моменты, когда важно различать.
Крис С
1
@ Натан С. Это также точно отвечает на вопрос. Только чтение не заменяет полный контроль. Как говорится в ответе: «Атрибут применяется независимо от того, какой участник безопасности пытается выполнить операцию». Однако, как указал Крис С., необязательные устаревшие атрибуты смешиваются с атрибутами NTFS.
Джим Б.
-6

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

Разрешения зависят от NTFS, и изменениями этих разрешений можно управлять для каждого пользователя (так что пользователь не может перейти с режима «только чтение» на режим записи). В частности, если вы посмотрите на команду attrib (которая показывает как устаревшие, так и новые добавления атрибутов, такие как целостность в более поздних версиях окон), можно иметь доступ только для чтения, установленный в разрешениях, но не иметь только доступ для чтения, установленный в атрибутах. Также интересно (если не важно) понять, что из-за абстракции технически возможно включить устаревшие атрибуты (хранящиеся в атрибуте $ standard_information NTFS) без их обязательного отображения в обычном графическом интерфейсе.

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

Атрибуты FAT будут иметь приоритет над атрибутами NTFS в Windows.

Джим Б
источник
3
in general attributes are legacy settings- У вас есть источник для этого, потому что я считаю это утверждение неверным. Они дополняют разрешения файловой системы - они не были заменены или заменены ими. В стандартных разрешениях нет ничего, что заменяло бы функции скрытых, архивных или системных.
MDMarra
1
Any user can modify them and can be used to prevent accidental overwrites of data.Кроме того, это на самом деле неверно. Только пользователи с «записать атрибут» в файл или каталог могут изменять атрибуты этого объекта.
MDMarra
1
i.stack.imgur.com/2fhEr.png для разъяснения.
Натан C
2
Джим, пожалуйста, найдите минутку, чтобы посмотреть на это с самого начала. Вы зашли так далеко в эту кроличью нору "атрибута NTFS", что забыли, что только вы говорите об атрибутах NTFS. ОП явно говорит о глобальных атрибутах файлов, таких как «Скрытый» и «Только для чтения». Он прямо упоминает «Только для чтения» в вопросе. Я не могу сказать, пытаетесь ли вы быть педантичным и терпеть неудачу, или вы законно упустили этот момент. Да, мы знаем, что атрибуты NTFS (расширенные) не совпадают с глобальными (в стиле FAT) атрибутами файлов / папок. Никто не претендует на это.
MDMarra
3
Я думаю, что вы явно упустили дух и намерение этого вопроса, и вы пытаетесь занять позицию, в которой одна часть неверна, а другая - бесполезна. Вы ясно показали, что знаете, как работают атрибуты NTFS. никто не спрашивал о них, и никто не использовал их в ответе в первую очередь. Если вы пытались показать свое знание атрибутов NTFS, у вас все получилось. Проблема в том, что вы полностью упустили суть вопроса.
MDMarra