Используя ICACLS для установки полномочий на пользовательских каталогах

Я проверил Powershell ранее, но нашел, что он пострадал от многих из тех же раздражений как стандарт трясины cmd окно.

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

16
задан 22 July 2009 в 00:38
3 ответа

Наблюдение сначала: Каждый раз, когда Вы блокируете наследование, Вы отключаете себя от будущей гибкости. Я стараюсь не блокировать наследование любой ценой.

При необходимости в пользователях, чтобы смочь перечислить содержание папки "E:\Home Directories" верхнего уровня, например, рассмотрите следующее разрешение:

  • СИСТЕМА - Полный контроль - Относившийся эта папка, подпапки и файлы
  • BUILTIN\Administrators - Полный контроль - Относившийся эта папка, подпапки и файлы
  • Пользователи BUILTIN\Authenticated - Чтение и Выполняется - Относившийся эта папка только

Последнее разрешение не наследовалось вниз в подпапки. В каждой подпапке наследование остается включенным, и Вы просто указываете, что пользователь с "Изменяет" или права "Полного контроля" (в зависимости от того, что Вы думаете о пользовательской способности установить полномочия в их корневом каталоге). (Обычно я установил то последнее разрешение путем включения "Аутентифицируемых Пользователей" не - "Усовершенствованный" лист свойств безопасности, снятия выделения с флажками "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, имеющем доступ, Вы хотите сохранить иерархию наследования в целости при помощи "Этой папки только" наследование в соответствующих случаях. Блокирование наследования в иерархиях разрешения является верным признаком, что что-то о дизайне "повреждается" (инвертированный, и т.д.).

18
ответ дан 2 December 2019 в 20:42
  • 1
    Вы рекомендуете предоставить полный доступ BUILTIN\Administrators ко всей структуре каталогов? I' m мнения, что мы (администраторы) действительно shouldn' t имеют полный доступ к everyone' s пользовательские каталоги/профили, не беря владение. –  pk. 22 July 2009 в 17:09

Во-первых, спасибо за Вашу выборку сценария. Я работал над тем же самым, но застрял в другом месте. На моем поле 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
1
ответ дан 2 December 2019 в 20:42
  • 1
    Удостоверьтесь, что Вы проверяете заключительную строку своего сценария. Именно мой опыт ICACLS успешно не удалит наследованные полномочия. Это удаляет запись на " MYDOMAIN \имя пользователя % %" папка, но полномочия подпапок является нетронутой. Поэтому " MYDOMAIN \имя пользователя % %" будет все еще иметь доступ к подпапкам, если получено доступ непосредственно, Вы просто won' t смочь просмотреть им. XCACLS.vbs разрешил это для меня. cscript.exe xcacls.vbs " e:\Test"/E/R " MYDOMAIN \имя пользователя % %" –  pk. 14 August 2009 в 16:36
  • 2
    That' s, где . часть вошла на моем редактировании. делая/inheritance:r на родительской папке, у меня была та же проблема. но делая его на . в родительской папке, казалось, добивался цели. После рабочего вышеупомянутого, %userdir % имеет %username %, систему и администраторов, но все под этим - просто %username % и система, которая является, как сервер настроил их первоначально - что я хотел. –   14 August 2009 в 17:52

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

Вот структура

\ 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

Сможете ли вы помочь в этом сценарии?

-1
ответ дан 2 December 2019 в 20:42

Теги

Похожие вопросы