Битлента
Сетевые команды и утилиты5 мин чтения·

icacls: как посмотреть и изменить права доступа к папке и прочитать запись (OI)(CI)(F)

Команда icacls в Windows: как прочитать права на папку, расшифровать F, M, RX и (OI)(CI), выдать и убрать доступ, сохранить права перед правкой.

Кратко

icacls путь без ключей выводит список прав на файл или папку. Записи вроде (OI)(CI)(F) означают наследование и уровень доступа. Перед изменением прав сохраните текущие командой с ключом /save, чтобы можно было вернуть всё обратно через /restore.

Отказано в доступе: с чего начать диагностику

Сообщение «Отказано в доступе» при открытии папки или копировании файла обычно означает, что у вашей учётной записи нет нужных прав. Прежде чем что-либо менять, стоит выяснить, какие права назначены сейчас. Для этого служит icacls, встроенная команда Windows для работы со списками управления доступом.

Запись icacls D:\Data выводит права на папку: по строке на каждую учётную запись или группу. Права на сам файл система хранит отдельно от его содержимого, поэтому даже владелец иногда не может открыть объект, если права были изменены.

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

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

Как читать вывод

Типичная строка выглядит так: BUILTIN\Administrators:(I)(OI)(CI)(F). Слева учётная запись или группа, справа в скобках условия. Скобки с одной-двумя буквами означают вид наследования, последняя скобка уровень доступа.

ОбозначениеЗначение
Fполный доступ
Mизменение
RXчтение и выполнение
Rтолько чтение
Wтолько запись
(I)право унаследовано от родительской папки
(OI)наследуется файлами внутри
(CI)наследуется вложенными папками
(IO)применяется только к вложенным объектам, не к самой папке

Внизу вывода команда пишет, сколько объектов обработано успешно и сколько с ошибками. Если строка с вашей учётной записью или группой «Пользователи» отсутствует, это объясняет отказ.

Пара примеров для практики. Строка Everyone:(R) означает право чтения для группы Everyone, то есть для всех пользователей, и для личных данных такая запись редко нужна. Строка NT AUTHORITY\SYSTEM:(OI)(CI)(F) принадлежит самой системе, и её удаление может привести к сбоям в службах.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Выдать и убрать доступ

Выдача права: icacls D:\Data /grant Иван:(OI)(CI)M даёт пользователю Иван право изменять содержимое папки и наследовать его во вложенные объекты. Имя учётной записи при необходимости указывается с именем компьютера или домена. Отзыв: icacls D:\Data /remove Иван убирает записи для этой учётной записи.

Для запрета существует /deny, но он обычно имеет приоритет над разрешениями и порой приводит к неожиданным ситуациям, когда человек не может открыть то, что ему вроде бы разрешено через группу. По возможности вместо запретов просто не выдавайте доступ.

  • /grant учётная_запись:права — добавить разрешение;
  • /remove учётная_запись — удалить записи этой учётной записи;
  • /inheritance:e включает, /inheritance:d отключает наследование (при d записи копируются как явные);
  • /T применяет команду ко вложенным файлам и папкам;
  • /C продолжать при ошибках, /Q не печатать успешные сообщения.

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

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

Сначала сохранить, потом менять

Ошибка в правах может закрыть доступ не только вам, но и системе или программам. Поэтому перед массовой правкой выгрузите текущие права: icacls D:\Data\* /save D:\acl-backup.txt /T. Файл содержит списки доступа для всех объектов под папкой.

Если что-то пошло не так, восстановление выполняется командой icacls D:\Data\ /restore D:\acl-backup.txt. Путь в /restore указывает на папку, содержащую объекты, права которых нужно вернуть. Учтите: для надёжного результата сохранение и восстановление нужно делать от имени администратора.

Ключ /reset заменяет права на значения по умолчанию, унаследованные от родителя. Он решает проблему, когда права запутаны, но затрагивает все записи. Применяйте его к своим данным, а не к системным папкам вроде Windows или Program Files.

Предупреждение: /reset, /remove, /deny и /inheritance:d с последующей правкой меняют доступ без простой отмены. Отрабатывайте их только на тестовой папке, которую вы создали для проверки, например C:\Test\acl-demo, и всегда после сохранения прав через /save. Не запускайте /reset с ключом /T на корне диска и на системных папках.

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

Когда не стоит править права вручную

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

Если папка принадлежит другой учётной записи или осталась от старой установки, проблема может быть в владельце объекта. Для смены владельца существуют команда takeown и ключ /setowner у icacls; их применяют, когда доступ нужен вам на законных основаниях к своим данным.

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

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

Когда папка находится на внешнем диске с файловой системой FAT32 или exFAT, список разрешений для неё не ведётся в привычном виде, и команда может сообщать, что операция не поддерживается. Это свойство файловой системы, а не ошибка команды, и для таких носителей права настраиваются иначе или не настраиваются вовсе.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
icaclsправа доступаwindowsпапки

Часто задаваемые вопросы

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