СЕРВИСНЫЕ УСЛУГИ
СТУДИЯ В ЛИПЕЦКЕ

Советы · Windows · 6 минут

«Отказано в доступе», хотя вы администратор: как разбирать права NTFS

Как проверить пользователя, владельца, наследование и фактические разрешения NTFS. Точечное изменение icacls, сохранение DACL и границы восстановления доступа.
Microsoft Windows: контекстное меню Проводника с переходом к свойствам. Для NTFS разрешения проверяются на вкладке безопасности; само наличие меню не подтверждает доступ к содержимому.

Microsoft Windows: контекстное меню Проводника с переходом к свойствам. Для NTFS разрешения проверяются на вкладке безопасности; само наличие меню не подтверждает доступ к содержимому.
© Microsoft. Used with permission from Microsoft. · источник и условия использования · Microsoft screenshot permissions

Администратор не получает любое право автоматически

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

При включённом UAC обычная программа администратора может работать с ограниченным токеном. Владелец объекта и пользователь, которому разрешено читать данные, тоже не обязаны совпадать. Право управлять разрешениями и право прочитать содержимое — разные возможности. [1], [2]

Далее рассматриваются ваши обычные файлы на NTFS. Защищённые папки Windows, корпоративные ресурсы и чужие данные требуют своих правил. Массовое получение владения всем диском для одной папки создаёт лишние изменения.

Что нужно установить
  1. Кто обращаетсяУчётная запись и контекст процесса
  2. К чемуТочный файл, папка и файловая система
  3. Какие праваЧтение, запись, удаление или изменение ACL
  4. Почему отказЗапрет, наследование или другой слой защиты

Схема редакции «Мы из 90х».

Отделите NTFS от сетевого доступа и шифрования

Проверьте точный путь. Для локального D:\Archive действуют права файловой системы и другие механизмы устройства. Для сетевой папки участвуют также разрешения общего ресурса, серверная учётная запись и условия SMB.

На серверном ресурсе пользователь может проходить проверку общего доступа, но не иметь нужных прав NTFS, либо наоборот. Изменение локальной папки на клиенте не исправляет разрешения на сервере. Современные ограничения SMB тоже могут давать похожее сообщение. [3]

Заблокированный BitLocker-том, файл EFS без закрытого ключа и диск в режиме read-only не исправляются простым добавлением Full Control. Сначала убедитесь, что исследуется именно отказ по разрешениям NTFS.

Похожее сообщение — разные механизмы
СлучайЧто проверяется
Локальный файл NTFSПользователь и DACL объекта
Сетевая папкаОбщий доступ, NTFS и SMB на сервере
EFSСертификат и соответствующий закрытый ключ
Запрещена запись на весь дискСостояние устройства, тома и политики

Учебная таблица редакции.

Установите пользователя и точное требуемое действие

В той же командной строке, где выполняется проверка, можно посмотреть текущую идентичность:

Командная строка

whoami /user
whoami /groups

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

Разделите операции. Просмотр каталога, чтение файла, изменение его содержимого и удаление могут проверять разные права. Программа при «сохранении» нередко создаёт временный файл и заменяет исходный; одного разрешения на чтение для этого недостаточно.

Запишите полную ошибку и момент: отказ при открытии или уже при замене результата. Это определяет, какие разрешения действительно нужны.

Проверьте наследование и эффективный доступ

Откройте «Свойства» → «Безопасность» → «Дополнительно». Посмотрите владельца, записи разрешений, источник наследования и доступный раздел эффективного доступа для нужной учётной записи.

Не сводите DACL к правилу «любой запрет всегда главнее любого разрешения». При каноническом порядке сначала рассматриваются явные записи, затем унаследованные; внутри соответствующих групп запреты идут перед разрешениями. Влияет порядок и то, какие права уже разрешены или запрещены. [4]

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

Порядок чтения канонической DACL
УровеньЧто учитывать
Явные записи объектаСначала запреты, затем разрешения
Унаследованные записиУчитываются после явных по порядку наследования
Членство в группахПрава могут приходить несколькими путями
Запрошенное действиеПроверяется конкретный набор прав

Таблица объясняет порядок, а не заменяет вычисление доступа для реального токена.

Учебная таблица редакции.

Посмотрите DACL через icacls и сохраните исходное состояние

Для просмотра одного файла:

Командная строка

icacls "D:\Archive\scan.jpg"

Для сохранения его DACL в повышенной CMD сначала создайте папку результата и перейдите в родительский каталог. Так в примере сохраняется имя относительно известной папки:

Командная строка

md C:\Iz90Diag
cd /d D:\Archive
icacls "scan.jpg" /save "C:\Iz90Diag\scan-dacl.txt"

Убедитесь, что команда завершилась успешно. /save сохраняет DACL, а не полную резервную копию файла, владельца, SACL или ключей EFS. Запишите владельца и состояние наследования отдельно. Назначение параметров изложено Microsoft. [5]

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

Добавьте только нужное разрешение на нужный объект

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

Командная строка

icacls "D:\Archive\scan.jpg" /grant "PC-NAME\UserName:R"

PC-NAME\UserName — условное обозначение: замените его реальной проверенной учётной записью. R означает чтение. Параметр /grant добавляет право, а /grant:r заменяет ранее заданные явные разрешения этого субъекта. Это разные изменения. [5]

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

Смена владельца нужна не при каждом отказе. Если она необходима для управления вашим объектом, заранее запишите прежнего владельца и последствия; сохранённая DACL сама по себе его не восстановит.

Почему кнопка «Продолжить» тоже может менять разрешения

Предложение Проводника получить доступ к папке иногда воспринимают как разовое повышение прав окна. Microsoft описывает другой сценарий: после согласия может изменяться ACL, чтобы предоставить учётной записи постоянный доступ к папке и её содержимому. [6]

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

Если цель — исследовать причину, сначала сохраните состояние и выберите минимальный объект проверки. Наличие прав администратора не требует автоматически менять владельца и все разрешения.

Если нужно получить управление своим файлом старого профиля

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

В «Свойства» → «Безопасность» → «Дополнительно» откройте изменение владельца и укажите подтверждённую учётную запись. Для начала выберите один файл. Не включайте замену владельца всех дочерних объектов большой папки без отдельной необходимости.

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

Возврат DACL и возврат владельца — разные операции. Icacls поддерживает отдельный /setowner, но потребуются соответствующие полномочия и корректный субъект. Сохранённый через /save файл не выполняет этот возврат за вас. Для защищённых компонентов Windows этот учебный маршрут не применяется. [1], [5]

Проверьте исходную операцию и при необходимости верните DACL

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

Для DACL, сохранённой в приведённом примере относительно D:\Archive, восстановление выполняется для этого родительского каталога:

Командная строка

icacls "D:\Archive" /restore "C:\Iz90Diag\scan-dacl.txt"

Проверьте результат и текущие разрешения. Этот возврат не восстанавливает изменённого владельца и не отменяет отдельные изменения родительских папок. Не применяйте файл ACL к случайному другому корню.

Если отказ остаётся при подходящей DACL, проверьте другой механизм: шифрование, режим записи, сетевую сторону или способ работы программы с временными файлами. Для дальнейшего разбора сохраните путь, учётную запись, действие, исходные ACL и конкретное выполненное изменение.

Проверка результата
  1. Право добавленоТолько подтверждённое и на нужный объект
  2. Действие повтореноВ исходном контексте приложения
  3. Доступ оценёнПо фактической операции
  4. Возврат понятенDACL и другие изменения учитываются отдельно

Схема редакции «Мы из 90х».

Made on
Tilda