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

У нас есть несколько общих сетевых ресурсов Windows в общем расположении (\\server-name\share), в котором находится общий набор файлов. Эти акции тиражируются примерно на 300 сотнях серверов. Реальная репликация отключена, но мы столкнулись с непредвиденной проблемой: администраторы серверов, находящиеся на полпути, меняют права доступа к файлам для нашего общего ресурса и творчески ломают репликацию.

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

  • Каждому нужен доступ для чтения
  • Пользователь Х нуждается в изменении / модификации
  • Пользователь Y нуждается в полном контроле

Теперь у меня есть хороший сценарий, который проверяет, существует ли по крайней мере каждый ресурс. Сложность проистекает из того факта, что (из-за хорошего дерева Active Directory) имена пользователей одинаковы для разных серверов (всегда в форме "ДОМЕН / пользователь"), но их номера руководства различаются.

До сих пор я смотрел на cacls.exe и более новую версию Icacls.exe, но варианты сбивают с толку и, кажется, сосредоточены вокруг изменения списков контроля доступа, что я не хочу делать. Любой инструмент, встроенный в Windows, предпочтительнее, я просто не знаю, как к этому подойти.

Итак, все сводится к следующему: на каком-то произвольном сервере, если я знаю только ИМЯ пользователя, есть ли способ выяснить, какие права доступа к файлам они имеют для данной папки?

1 ответ

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

Вы можете предоставить пользователю разрешение, ничего не меняя, используя /grant:r что означает "если он уже есть, ничего не делать, иначе добавить". Так,

Каждому нужен доступ для чтения
icacls \a\directory\somewhere /t /grant:r Everybody:(rd)

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

Пользователь Х нуждается в изменении / модификации
icacls \a\directory\somewhere /t /grant:r bobX:m

И так далее. Я предполагаю, что "m" достаточно, чтобы передать разрешение "изменить".

ACL - это просто другое название для "разрешений". Итак, если вы хотите изменить разрешения, то вы хотите изменить ACL.

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