Параметры ICACLS: Почему / T требуется с (OI)(OC)?

Если я использую ICACLS.exe для установки разрешений для папки с помощью такой команды, как

icacls "C:\Some\Directory" /grant "somedomain\someUser:(OI)(CI)F" /t

зачем нужна опция /t? Разве это не тот случай, когда (OI)(CI) приведет к наследованию разрешений для всех объектов в пределах C:\Some\Directory дерево?

Чтобы быть более конкретным, предположим, в моем примере выше у меня есть каталог C:\Some\Directory\Tree, Предположим, что этот каталог не имеет явных разрешений. Добавление явного разрешения "somedomain\someUser:(OI)(CI)F" к этому каталогу ничего не даст, поскольку он уже унаследован. Icacls даже делает это? (Изменить: да, если вы подождете достаточно долго!) Поэтому, если я знаю, что у дерева каталогов нет явных разрешений, мне действительно не нужна опция /t (которая тратит огромное количество времени на дерево каталогов 8 ТБ с сотнями миллионы файлов...)

2 ответа

Решение

Некоторые эксперименты с тривиальным деревом каталогов показывают, что:

1) (OI)(CI) действительно приводит к тому, что разрешения наследуются - как, конечно, унаследованные ACE в DACL, а не явные ACE - для всех подобъектов (учитывая, что наследование не было отключено для подобъекта), как и следовало ожидать.

2) Параметр /t заставляет icacls обойти дерево и добавить точно такое же разрешение для каждого подкаталога, что и явное разрешение.

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

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

В массивной файловой системе это может занять слишком много времени.

Тот факт, что в документации указано "установлены ли они для наследования разрешений", возможно, предупреждает вас:

1) копирование в качестве явных разрешений для всех подкаталогов может не потребоваться, если разрешение содержит (OI)(CI)

но

2) если подкаталог установлен не наследовать разрешения, это на самом деле выполняет нечто существенное: в таком каталоге разрешение не будет наследоваться от родительского (т.е. (OI)(CI) наследование подавлено), но оно все равно будет присутствовать благодаря тому, что будет добавлено как явное разрешение.

Разве это не тот случай, когда (OI)(CI) приведет к наследованию разрешений?

Нет. Это объясняется описанием /t:

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

Источник icacls

Другие вопросы по тегам