Наблюдение сначала: Каждый раз, когда Вы блокируете наследование, Вы отключаете себя от будущей гибкости. Я стараюсь не блокировать наследование любой ценой.
При необходимости в пользователях, чтобы смочь перечислить содержание папки "E:\Home Directories" верхнего уровня, например, рассмотрите следующее разрешение:
Последнее разрешение не наследовалось вниз в подпапки. В каждой подпапке наследование остается включенным, и Вы просто указываете, что пользователь с "Изменяет" или права "Полного контроля" (в зависимости от того, что Вы думаете о пользовательской способности установить полномочия в их корневом каталоге). (Обычно я установил то последнее разрешение путем включения "Аутентифицируемых Пользователей" не - "Усовершенствованный" лист свойств безопасности, снятия выделения с флажками "Read" и "Read and Execute". Я затем продолжаю двигаться в "Усовершенствованное" диалоговое окно и изменяю настройки "Apply onto" для что ACE к "Этой папке только". Это о самом легком способе, с точки зрения количества щелчков, установить его.)
Затем Ваш сценарий становится:
set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
ICACLS "E:\Home Directories\%userDir%" /reset /T
ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F
ICACLS "E:\Home Directories\%userDir%" /setowner "MYDOMAIN\%userDir%" /T
Я сильно подозреваю, что добавление "Аутентифицируемых Пользователей" разрешение, я описал выше w/набор наследования к "Этой папке только", даст Вам, что Вы ищете в функциональности и дадите Вам будущую гибкость, если Вы узнаете, что необходимо установить разрешение, которое, возможно, должно было бы наследоваться во все пользовательские корневые каталоги в будущем.
Это - мой SOP для пользовательских корневых каталогов, перенаправленных "Мои Документы", "Рабочий стол", и т.д. папки, и для каталогов профиля роумингового пользователя. Это работает отлично.
Править
ре: Ваш комментарий о доступе BUILTIN\Administrators
У меня были различные споры с людьми о моем взятии при предоставлении доступа BUILTIN\Administrators за эти годы, и мое взятие - это:
Легче решить определенный класс пользовательских проблем, если можно добраться до их файлов. Это - боль для "взятия владения" и может быть довольно медленно, если существует большое количество существующих файлов, также.
Как Вы видели с ICACLS, BUILTIN\Administrators может "присвоить" владение (помимо "взятия" его), таким образом, нет никакой "безопасности", добавленной, не имея файлы, доступные для BUILTIN\Administrators во-первых.
Если Вы не будете использовать аудит (и отсеивание через потенциально огромное количество ложно-положительных записей) не будет журнала аудита, когда пользователь BUILTIN\Administrators берет владение файлов, они не должны получать доступ, копируют их и затем возвращают файлы назад их "надлежащему" владельцу и разрешению.
В мире Microsoft, Шифруя файловую систему (EFS) предназначен для решения проблемы того, чтобы мешать несанкционированному доступу BUILTIN\Administrators произойти. NTFS ACLs не решает ту проблему. (Очевидно, EFS не является единственным шоу в городе. Шифрование является реальным ответом на решение "предела доступ администратора сети" проблема, неважно, как Вы нарезаете его.)
По моему мнению указывание BUILTIN\Administrators с доступом к пользовательским корневым каталогам (и, на самом деле, любая папка) означает увеличение сложности, и время должно было решить вопросы при обеспечении меньше, чем никакая реальная безопасность ("меньше, чем ни один", потому что это передает ложное чувство защищенности, где нет ни одного).
Я бросил пытаться выиграть спор с людьми посредством логики. Это, кажется, эмоциональная проблема с некоторыми людьми. Это похоже на глупое, "Отклоняют / Получают Как" ACE, который помещается в корень организации Exchange, чтобы препятствовать тому, чтобы определенные привилегированные группы открыли пользовательские почтовые ящики. Это не предлагает реальной безопасности (так как w/o, которые аудит того мог удалить / повторно применяют ACE по мере необходимости), ложное чувство защищенности, и мешает при решении настоящих проблем.
Даже если Вам не нравится мой аргумент о BUILTIN\Administrators, имеющем доступ, Вы хотите сохранить иерархию наследования в целости при помощи "Этой папки только" наследование в соответствующих случаях. Блокирование наследования в иерархиях разрешения является верным признаком, что что-то о дизайне "повреждается" (инвертированный, и т.д.).
Во-первых, спасибо за Вашу выборку сценария. Я работал над тем же самым, но застрял в другом месте. На моем поле SBS 2008, ниже кода работает на меня (предположение, что это работало поднятый, конечно). Я сделал icacls %userdir %/t совершенно новой пользовательской папки (по умолчанию), созданной ОС, и сравнил ее с icacls %userdir %/t папки после запущения этого скрипта, и она похожа на весь "O, и я", корректны. Надо надеяться, это будет работать на Вас также.
set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
ICACLS "E:\Home Directories\%userDir%" /reset /T
ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(oi)(ci)f
ICACLS "E:\Home Directories\%userDir%\*.*" /grant:r "SYSTEM":(OI)(CI)F /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F /grant:r "MYDOMAIN\%username%":(OI)(CI)F
ICACLS "E:\Home Directories\%userDir%\*.*" /inheritance:r
ICACLS "E:\Home Directories\%userDir%\*.*" /setowner "MYDOMAIN\%userDir%" /T
ICACLS "E:\Home Directories\%userDir%" /remove "MYDOMAIN\%username%" /t
С уважением,
-d
Мне нужна ваша помощь, чтобы изменить эту команду в соответствии с моими требованиями, если это технически возможно.
Вот структура
\ Server \ Parent \ UserA \ unix
\ Server \ Parent \ UserB \ unix
\ Server \ Parent \ UserC \ unix .... и так далее ..
В каждой папке User $ есть папка с именем "unix".
Я хочу чтобы добавить пользователя или группу с полными разрешениями для всех папок User $, перечисленных в «Родительской» папке (имена взяты из приведенной выше структуры), но хотите исключить разрешения только для папки «unix».
У меня есть эта команда, которая работает мне хорошо с точки зрения применимости необходимых разрешений, но я не могу добавить сюда функцию исключения.
icacls "\\ Server \ Parent \ UserA" / grant Domain \ Group: (OI) (CI) F / T
Сможете ли вы помочь в этом сценарии?