Icacls отказано в доступе

Icacls отказано в доступе

Одной из типовых задач администратора Windows при настройке доступа пользователей – управление NTFS разрешениями на папки и файлы файловой системы. Для управления NTFS разрешениями можно использовать графический интерфейс системы (вкладка Безопасность/Security в свойствах папки или файла), или встроенную утилиту командной строки iCACLS. В этой статье мы рассмотрим примеру использовании команды iCACLS для просмотра и управления разрешениями на папки и файлы.

Утилита iCACLS позволяет отображать или изменять списки управления доступом (Access Control Lists (ACLs) к файлам и папкам файловой системы. Предшественником у утилиты iCACLS.EXE является команда CACLS.EXE (доступна в Windows XP).

Чтобы просмотреть действующие разрешения на конкретную папку (например, C:PS), откройте командную строку и выполните команду:

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

c:PS BUILTINАдминистраторы:(I)(OI)(CI)(F)
NT AUTHORITYСИСТЕМА:(I)(OI)(CI)(F)
BUILTINПользователи:(I)(OI)(CI)(RX)
NT AUTHORITYПрошедшие проверку:(I)(M)
NT AUTHORITYПрошедшие проверку:(I)(OI)(CI)(IO)(M)

Успешно обработано 1 файлов; не удалось обработать 0 файлов

Напротив каждой группы и пользователя указан уровень доступа. Права доступа указываются с помощью сокращений. Рассмотрим разрешения для группы BUILTINАдминистраторы.

(OI) — Object inherit – права наследуются на нижестоящие объекты
(CI) — Container inherit – наследование каталога
(F) – Full control– полный доступ к папке
(I) — Inherit права наследованы с вышестоящего каталога

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

Ниже представлен полный список разрешений, которые можно устанавливать с помощью утилиты icacls.

Права наследования:

(OI) — object inherit
(CI) — container inherit
(IO) — inherit only
(NP) — don’t propagate inherit
(I) — Permission inherited from parent container

Список основных прав доступа:

D — право удаления
F — полный доступ
N — нет доступа
M — доступ на изменение
RX — доступ на чтение и запуск
R — доступ только на чтение
W — доступ только на запись

Детальные разрешения:

DE — Delete
RC — read control
WDAC — write DAC
WO — write owner
S — synchronize
AS — access system security
MA — maximum allowed
GR — generic read
GW — generic write
GE — generic execute
GA — generic all
RD — read data/list directory
WD — write data/add file
AD — append data/add subdirectory
REA — read extended attributes
WEA — write extended attributes
X — execute/traverse
DC — delete child
RA — read attributes
WA — write attributes

С помощью утилиты icacls вы можете сохранить текущие списки доступа к объекту в файл, а затем применить сохраненный список к этому же или другим объектам (своеобразный способ создания резервной копии текущего списка доступа — ACL).

Чтобы выгрузить текущие ACL папки C:PS и сохранить их в текстовый файл export_ps_acl.txt, выполните команду:

icacls C:PS* /save c:ackupexport_ps_acl.txt /t

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

Чтобы применить сохраненные списки доступа (восстановить разрешения на каталог и все вложенные объекты), выполните команду:

icacls C:PS /restore :ackupexport_ps_acl.txt

Таким образом процесс переноса прав доступа с одной папки на другую становится намного легче.

С помощью команды icacls вы можете изменить списки доступа к папке. Например, вы хотите предоставить пользователю aivanov право на редактирование содержимого папки. Выполните команду:

icacls C:PS /grant aivanov:M

Удалить все назначенные разрешения для учетной записи пользователя aivanov можно с помощью команды:

icacls C:PS /remove aivanov

Вы можете запретить пользователю или группе пользователей доступ к файлу или папке так:

icacls c:ps /deny "MSKManagers:(CI)(M)"

Имейте в виду, что запрещающие правил имеют больший приоритете, чем разрешающие.

С помощью команды icacls вы можете изменить владельца каталог или папки, например:

icacls c:pssecret.docx /setowner aivanov /T /C /L /Q

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

  • /Q – сообщение об успешном выполнении команды не выводится;
  • /L – команда выполняется непосредственно над символической ссылкой, а не конкретным объектом;
  • /C – выполнение команды будет продолжаться несмотря на файловые ошибки; при этом сообщения об ошибках все равно будут отображаться;
  • /T – команда используется для всех файлов и каталогов, которые расположены в указанном каталоге;

Вы можете изменить владельца всех файлов в каталоге:

icacls c:ps* /setowner aivanov /T /C /L /Q

Также при помощи icacls можно сбросить текущие разрешения на объекты,

icacls C:ps /T /Q /C /RESET

После выполнения команды все текущие разрешения на папку будут сброшены и заменены на разрешения, наследуемые с вышестоящего объекта (каталога).

Команда iCACLS позволяет отображать или изменять списки управления доступом ( A ccess C ontrol L ists (ACLs) ) к файлам и папкам файловой системы. Утилита iCACLS.EXE является дальнейшим усовершенствованием утилиты управления доступом CACLS.EXE.

Читайте также:  Как найти песню из рекламы

Управление доступом к объектам файловой системы NTFS реализуется с использованием специальных записей в таблице MFT (Master File Table). Каждому файлу или папке файловой системы NTFS соответствует запись в таблице MFT, содержащая специальный дескриптор безопасности SD (Security Descriptor). Каждый дескриптор безопасности содержит два списка контроля доступа:

System Access-Control List (SACL) — системный список управления доступом .

Discretionary Access-Control List (DACL) — список управления избирательным доступом.

SACL управляется системой и используется для обеспечения аудита попыток доступа к объектам файловой системы, определяя условия при которых генерируется события безопасности. В операционных системах Windows Vista и более поздних, SACL используется еще и для реализации механизма защиты системы с использованием уровней целостности ( Integrity Level, IL).

DACL — это собственно и есть список управления доступом ACL в обычном понимании. Именно DACL формирует правила, определяющие, кому разрешить доступ к объекту, а кому — запретить.

Каждый список контроля доступа (ACL) представляет собой набор элементов (записей) контроля доступа — Access Control Entries , или ACE ) . Записи ACE бывают двух типов (разрешающий и запрещающий доступ), и содержит три поля:

SID пользователя или группы, к которому применяется данное правило

Вид доступа , на которое распространяется данное правило

Тип ACE — разрешающий или запрещающий.

SID — Security ID – уникальный идентификатор, который присваивается каждому пользователю или группе пользователей в момент их создания. Посмотреть примеры SID можно , например с помощью команды WHOAMI /ALL . Как видим, система управления доступом к объектам NTFS оперирует не именами, а идентификаторами SID. Поэтому, например нельзя восстановить доступ к файлам и папкам, существовавший для удаленного из системы пользователя, создав его заново с тем же самым именем – он получит новый SID и правила записей ACE, применяемые к старому идентификатору SID, выполняться не будут.

При определении результатов запросов на доступ к объектам файловой системы NTFS применимы следующие правила:

Если в дескрипторе безопасности отсутствует DACL , то объект считается незащищенным, т.е. все имеют к нему неограниченный доступ.

Если DACL существует, но не содержит ни одного элемента ACE, то доступ к объекту закрыт для всех.

Для того чтобы изменить DACL объекта, пользователь (процесс) должен обладать правом записи в DACL (WRITE_DAC — WDAC). Право записи может быть разрешено или запрещено, с помощью утилиты icalc.exe , но даже если установлен запрет, все равно разрешение на запись имеется хотя бы у одного пользователя владельца файла или папки (поле Owner в дескрипторе безопасности), так как владелец всегда имеет право изменять DAC.

Варианты применения команды iCACLS:

ICACLS имя /save ACL_файл [/T] [/C] [/L] [/Q] — сохранение DACL для файлов и папок, соответствующих имени, в ACL-файл для последующего использования с командой /restore . Обратите внимание, что метки SACL, владельца и целостности не сохраняются.

ICACLS каталог [/substitute SidOld SidNew [. ]] /restore ACL_файл [/C] [/L] [/Q] — применение ранее сохраненных DACL к файлам в каталоге.

ICACLS имя /setowner пользователь [/T] [/C] [/L] [/Q] — смена владельца всех соответствующих имен. Этот параметр не предназначен для принудительной смены владельца; используйте для этой цели программу takeown.exe .

ICACLS имя /findsid Sid [/T] [/C] [/L] [/Q] — поиск всех соответствующих имен, содержащих ACL с явным упоминанием ИД безопасности.

ICACLS имя /verify [/T] [/C] [/L] [/Q] — поиск всех файлов с неканоническими ACL или длинами, не соответствующими количеству ACE.

ICACLS имя /reset [/T] [/C] [/L] [/Q] — замена ACL на унаследованные по умолчанию для всех соответствующих файлов.

ICACLS имя [/grant[:r] Sid:perm[. ]] [/deny Sid:perm [. ]] [/remove[:g|:d]] Sid[. ]] [/T] [/C] [/L] [/Q] [/setintegritylevel Level:policy[. ]]

/grant[:r] Sid:perm — предоставление указанных прав доступа пользователя. С параметром :r эти разрешения заменяют любые ранее предоставленные явные разрешения. Без параметра :r разрешения добавляются к любым ранее предоставленным явным разрешениям.

/deny Sid:perm — явный отзыв указанных прав доступа пользователя. Добавляется ACE явного отзыва для заявленных разрешений с удалением этих же разрешений в любом явном предоставлении.

/remove[:[g|:d]] Sid — удаление всех вхождений ИД безопасности в ACL. С параметром :g удаляются все вхождения предоставленных прав в этом ИД безопасности. С параметром :d удаляются все вхождения отозванных прав в этом ИД безопасности.

/setintegritylevel [(CI)(OI)]уровень — явное добавление ACE уровня целостности ко всем соответствующим файлам. Уровень задается одним из следующих значений:

Уровню могут предшествовать параметры наследования для ACE целостности, применяемые только к каталогам.

Механизм целостности Windows Vista и более поздних версий ОС, расширяет архитектуру безопасности путём определения нового типа элемента списка доступа ACE для представления уровня целостности в дескрипторе безопасности объекта (файла, папки). Новый ACE представляет уровень целостности объекта. Он содержится в системном ACL (SACL), который ранее используемом только для аудита. Уровень целостности также назначается токену безопасности в момент его инициализации. Уровень целостности в токене безопасности представляет уровень целостности (Integrity Level, IL) пользователя (процесса). Уровень целостности в токене сравнивается с уровнем целостности в дескрипторе объекта когда монитор безопасности выполняет проверку доступа. Система ограничивает права доступа в зависимости от того выше или ниже уровень целостности субъекта по отношению к объекту, а также в зависимости от флагов политики целостности в соответствующей ACE объекта. Уровни целостности (IL) представлены идентификаторами безопасности (SID), которые представляют также пользователей и группы, уровень которых закодирован в относительном идентификаторе (RID) идентификатора SID. Наиболее распространенные уровни целостности:

Читайте также:  Акустика корвет 75ас 001

e — включение наследования

d — отключение наследования и копирование ACE

r — удаление всех унаследованных ACE

ИД безопасности могут быть в числовой форме (SID), либо в форме понятного имени (username). Если задана числовая форма, добавьте * в начало ИД безопасности, например — *S-1-1-0 . Параметры командной строки iCACLS:

/T — операция выполняется для всех соответствующих файлов и каталогов, расположенных в заданном каталоге.

/C — выполнение операции продолжается при любых файловых ошибках. Сообщения об ошибках по-прежнему выводятся на экран.

/L — операция выполняется над самой символьной ссылкой, а не над ее целевым объектом.

/Q — утилита ICACLS подавляет сообщения об успешном выполнении.

Утилита ICACLS сохраняет канонический порядок записей ACE:

разрешение — это маска разрешения, которая может задаваться в одной из двух форм:

последовательность простых прав:

N — доступ отсутствует

F — полный доступ

M — доступ на изменение

RX — доступ на чтение и выполнение

R — доступ только на чтение

W — доступ только на запись

D — доступ на удаление

список отдельных прав через запятую в скобках:

DE — удаление
RC — чтение
WDAC — запись DAC
WO — смена владельца
S — синхронизация
AS — доступ к безопасности системы
MA — максимально возможный
GR — общее чтение
GW — общая запись
GE — общее выполнение
GA — все общие
RD — чтение данных, перечисление содержимого папки
WD — запись данных, добавление файлов
AD — добавление данных и вложенных каталогов
REA — чтение дополнительных атрибутов
WEA — запись дополнительных атрибутов
X — выполнение файлов и обзор папок
DC — удаление вложенных объектов
RA — чтение атрибутов
WA — запись атрибутов

Права наследования могут предшествовать любой форме и применяются только к каталогам:

(OI) — наследование объектами

(CI) — наследование контейнерами

(IO) — только наследование

(NP) — запрет на распространение наследования

(I) — наследование разрешений от родительского контейнера

Примеры использования iCACLS:

icacls — запуск без ключей используется для получения краткой справки по использованию команды.

icacls C:Users — отобразить список управления доступом для папки C:Users. Пример отображаемой информации:

C:Users NT AUTHORITYсистема:(OI)(CI)(F)
BUILTINАдминистраторы:(OI)(CI)(F)
BUILTINПользователи:(RX)
BUILTINПользователи:(OI)(CI)(IO)(GR,GE)
Все:(RX)
Все:(OI)(CI)(IO)(GR,GE)

Успешно обработано 1 файлов; не удалось обработать 0 файлов

icacls c:windows* /save D:win7.acl /T — сохранение ACL для всех файлов в каталоге c:windows и его подкаталогах в ACL-файл D:win7.acl . Сохраненные списки ACL позволят восстановить управление доступом к файлам и каталогам в исходное состояние, поэтому, прежде чем выполнять какие-либо изменения, желательно иметь файл сохраненных списков ACL.

Пример данных сохраненных списков доступа ACL:

В тех случаях, когда при выполнении команды iCACLS возникает ошибка, вызванная отказом в доступе к обрабатываемому объекту, можно продолжить выполнение команды, если задан параметр /C :

icacls "C:System Volume Information*" /save D:SVI-C.acl /T /C — сохранение списков управления доступом ACL для всех файлов и подкаталогов каталога C:System Volume Information с продолжением обработки в случае возникновения ошибки. По результатам обработки отображается сообщение о количестве успешно, и не успешно, обработанных файлов.

Для восстановления доступа к файлам и папкам используется параметр /restore :

icacls c:windows /restore D:win7.acl — восстановление списков контроля доступа к файлам и папкам каталога c:windows из ранее сохраненного ACL-файла D:win7.acl .

Если вы устали от постоянной ошибки доступа к файлу либо вам сурово отказано в доступе к файлу, нерадивую Windows 7 можно наказать. Команда “Стать владельцем” позволяет получить полный доступ к любому файлу либо папке, достаточно лишь немного покопаться в системном реестре.

Вообще, о том как Стать владельцем файла в Windows 7 мы уже писали, но будет не лишним обновить эту информацию.

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

Внимание: если вы сохраняете файл в Блокноте и выбрали для него тип Текстовые файлы, то обязательно при сохранении заключите название файла и его расширение в кавычки, например, “vladelec.reg”.

А вот и сам код.

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

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

Ну а при щелчке на папке нас порадует не менее актуальная команда.

Программа TakeOwnershipEx

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

Читайте также:  Почта не ищет письма

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

Кстати программа поможет получить права сразу на несколько файлов, так что вам не придется занудно щелкать на одном файле за другом.

63 виндат на “Если отказано в доступе к файлу в Windows 7”

в свойствах папки появился пункт:
cmd.exe /c takeown /f ”%1” /r /d y && icacls ”%1” /grant администраторы:F /t
как это исправить?

В коде в самом начале третьей с конца строки пропущена квадратная скобка. Отсюда такая проблема, как у Андрея

+1 в карму, исправил

на папке жму ПКМ а пишет типа “файл – подчиняйся мне” с начала я думал что-то не сработало и он не распознает папка или файл, потом посмотрел код и увидел ошибку в надписи касаемо директорий, поправил код. Автору спасибо.

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT*shell
unas]
@=”Файл – я твой хозяин. Подчиняйся мне!”
“NoWorkingDirectory”=””
[HKEY_CLASSES_ROOT*shell
unascommand]
@=”cmd.exe /c takeown /f ”%1” && icacls ”%1” /grant администраторы:F”
“IsolatedCommand”=”cmd.exe /c takeown /f ”%1” && icacls ”%1” /grant администраторы:F”
[HKEY_CLASSES_ROOTDirectoryshell
unas]
@=”Папка – я твой хозяин. Подчиняйся мне!”
“NoWorkingDirectory”=””
[HKEY_CLASSES_ROOTDirectoryshell
unascommand]
@=”cmd.exe /c takeown /f ”%1” /r /d y && icacls ”%1” /grant администраторы:F /t”
“IsolatedCommand”=”cmd.exe /c takeown /f ”%1” /r /d y && icacls ”%1” /grant администраторы:F /t”

вротмненоги, и как не доглядел? спасибо, исправил код в статье

Здравствуйте! У меня вот какая проблемка не могу запустить службу в windows 7(DHCP-клиент (Регистрирует и обновляет IP-адреса и DNS-записи для этого компьютера. Если данная служба остановлена, этот компьютер не сможет получать динамические IP-адреса и выполнять обновления DNS. Если эта служба отключена, любые службы, которые явно зависят от нее, не могут быть запущены.)) постоянно выдает нет доступа (код ошибки 5), уже заходил от имени Администратора все ровно та же ошибка (код ошибки 5),что делать не знаю, путь к нему ( Управление компьютером -> Службы и приложения -> Службы -> DHCP – клиент . В чем проблема помажите.

СПАСИБО.
Хороший совет-получил доступ к ненужным файлам и смог их удалить.
Ещё раз СПАСИБО.

Спасибо!)))))Ты реально крут!Всё работает!))Полгода не мог понять в чём дело!))

“Далее осталось дважды щелкнуть на сделанном файле. Появится злобное предупреждение, в котором щелкните на кнопке Да.” И на этом все та же фигня – Отказано в доступе к указанному устройству, пути или файлу. Возможно у вас нет нужных прав доступа к этому объекту

Попробуй TakeOwnershipEx, может, сработает

Спаибо большое! Я не знал про эту прогу… Эта штука не берёт exe файлы, а TOE взяла.

А если и при запуске этой программы пишет “Отказано в доступе”?

при запуске пишет “это не файл реестра”,что делать

я не могу найти папку SP у меня 7-ка max 32 битная

В любую папку можно, хоть на рабочий стол.

Спасибо огромное)) Респект таким людям, которые безвозмездно помогают людям получить доступ к своим папкам)

У меня такая проблема:Когда я 2 раза щелкаю на файл который нужно добавить в реестр и нажимаю ок пишет что Невозможно импонтировать файл, ошибка при доступе к реестру. Что делать?

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

УРА ! УРА! УРА! Респект Только положительные эмоции. У меня была проблема купил новый жесткий диск. На старом стояла хр, решил поставить на новый вин 7. Начал копировать со старого на новый диск файлы.И не как не мог переместить не скопировать и даже зайти в папку “Мои Документы” со старого жестко диска. Ну, не, как не мог. день мучил. дошел до того что в паку пускает файлы вижу а, (допустим word документ лежит вижу пробую открыть его чтобы прочесть открывается и word говорит ошибочка у вас нет прав 🙁 каких прав о чем он я так толком и не разобрался) открыть, или, скопировать не могу,что-только не пробовал, перерыл весь интернет прочитал половину мануал к виндос 7 а также и хр. Все в пустую. админ,создатель, безопасный режим, аудит, владелец, все равно писал нет прав, даже прога “TakeOwnershipEx” и та тоже ругалась нет прав, файловые менеджеры даже под досом и те непускали. Я уж совсем загрустил. но “рег я хозяин” это, не что, без лишних вопросов, и ни каких манипуляций. Супер! пост не только начинающим юзырам но и для продвинутых юзоров 🙂 Еще раз спасибо автору.МОЛОДЕЦ!

Огромное спасибо! Это просто панацея для проблем с доступом.

Ссылка на основную публикацию
Adblock
detector