Остановить наследование разрешений всех вложенных папок в Windows 7

Это в Windows 7.

У меня есть несколько папок высоком уровне. Каждая папка высокого уровня имеет целую кучу вложенных папок.

Мне нужно назначить одну группу, чтобы быть" только для чтения " для папок высокого уровня, но "чтение и запись" для каждой подпапки и все ниже.

Я думал, что могу сделать это в два шага:

  1. назначить разрешения" чтение и запись "на высоком уровне папок, используя" эта папка, вложенные папки и файлы." Этот шаг работает, группа читает и записывает весь путь вниз.

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

Я бы подумал, что Шаг 2 оставит каждую подпапку как "чтение и запись" и применит "только для чтения" только папку верхнего уровня. Но все вложенные папки, вплоть до, становятся "только для чтения" также после Шаг 2.

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

Если я открою каталог, выберите все подпапки и щелкните правой кнопкой мыши "Свойства", это не позволит мне установить разрешения на несколько файлов одновременно. Это позволяет мне устанавливать разрешения, только если я делаю их по одному время.

Я не хочу устанавливать тысячи прав доступа к файлам вручную. Помощь есть?

спасибо,

Т.ложка.

25
задан Tom Spoon
14.04.2023 11:17 Количество просмотров материала 3234
Распечатать страницу

2 ответа

у меня есть несколько папок высоком уровне. Каждая папка высокого уровня имеет куча подпапок.

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

на основе вашего вопроса, вашего комментария и подтверждения того, что высокоуровневые [родительские] папки будут иметь доступ только для чтения. Также подтверждая, что все ниже вложенных папок (и файлов в каждой подпапке) получит доступ к изменению, поэтому ниже приведены два примера выполнения этого в цикле пакетной обработки; один пакетный сценарий и один экземпляр и вставка в командную строку.

набор переменных

  • SET TopFolder=:

    • установить SET TopFolder= значение, равное корневой папке [parent] с полным путем и именем папки. Цикл будет установить разрешения на основе того, что существует ниже этой папки предоставление явного доступа ACL modify NFTS.
  • SET UserOrGroupName=:

    • установить SET UserOrGroupName= значение, равное имени учетной записи Пользователя или группы безопасности (т. е. <LocalUserName>,<LocalGroupName>,<Domain>\<UserName> или <Domain>\<GroupName>).

Пример Копирования Из Командной Строки

@ECHO ON

SET TopFolder=C:\Users\User\Desktop\HighLevelFolder\Parent1
SET UserOrGroupName=User
::: Grant top folder read and execute access and have beneath folders and files inherit these permissions.
ICACLS "%TopFolder%" /grant:r "%UserOrGroupName%":(OI)(CI)RX
::: Iterate the subfolders beneath the [parent] root-level folder to grant the explicit modify access
FOR /F "TOKENS=*" %G IN ('DIR /B /AD "%TopFolder%\*"') DO ICACLS "%TopFolder%\%~G" /grant:r "%UserOrGroupName%":(OI)(CI)M
GOTO EOF

Пример Пакетного Скрипта

@ECHO ON

SET TopFolder=C:\Users\User\Desktop\HighLevelFolder\Parent1
SET UserOrGroupName=User
::: Grant top folder read and execute access and have beneath folders and files inherit these permissions.     
ICACLS "%TopFolder%" /grant:r "%UserOrGroupName%":(OI)(CI)RX
::: Iterate the subfolders beneath the [parent] root-level folder to grant the explicit modify access
FOR /F "TOKENS=*" %%G IN ('DIR /B /AD"%TopFolder%\*"') DO ICACLS "%TopFolder%\%%~G" /grant:r "%UserOrGroupName%":(OI)(CI)M
GOTO EOF

дальнейшее чтение и Источники

я использовал следующие опции ICACLS:

/grant[:r] Sid:perm grants the specified user access rights. With :r,
    the permissions replace any previously granted explicit permissions.
    Without :r, the permissions are added to any previously granted
    explicit permissions.

perm is a permission mask and can be specified in one of two forms:
    a sequence of simple rights:
            M - modify access
            RX - read and execute access

inheritance rights may precede either form and are applied
only to directories:
        (OI) - object inherit
        (CI) - container inherit
0
отвечен Pimp Juice IT 2023-04-15 19:05

назначить разрешения "чтение и запись" на высоком уровне папок, используя "эта папка, вложенные папки и файлы."Этот шаг работает, группа получает Читайте и записывайте до конца.

Это бит, в котором плакат " Tom " пошло не так.

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

вы можете ограничить доступ пользователя к каталогу, установив его доступ (например, RX) к "только этой папке", при условии, что вы установите доступ к ее вложенным объектам (например, FULL) в "только вложенные папки и файлы". В противном случае параметры вступят в конфликт, и Windows 7 отклонит изменение или применит его иным способом, чем вы предполагаете.

ручная процедура Тома намного проще, чем борьба с ужасами icacls.exe, но можно - теоретически - получить тот же результат со следующим (но у меня никогда не было, кроме как после первого удаления всех унаследовала прав, а после еще и удаления всех явно права тоже, и либо удаление всех других пользователей на объекте или делать это для каждого пользователя на объекте):

Я сначала установить полный доступ только на суб-объекты -

icacls.exe "%directory%" /T /grant:r %username%:(OI)(CI)(IO)F

тогда я ограничиваю доступ пользователя к самому каталогу -

icacls.exe "%directory%" /grant:r %username%:(RX,WDAC,WO,WD,AD,WEA,DC)
0
отвечен Ed999 2023-04-15 21:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх