Все права на SubInACL и файл справки принадлежат компании Microsoft. Я лишь бескорыстно перевел эту справку. Для лучшего понимания как работать с утилитой предлагаю сначала прочесть мое Предисловие к русской справке.
Subinacl.exe
Этот документ является переводом с английского языка официального справочного руководства корпорации Microsoft, поставляемого в комплекте с утилитой (файл subinacl.htm).
Обзор
SubInACL — это утилита командной строки, которая позволяет администраторам получать информацию о безопасности файлов, ключей реестра и служб, и переносить эту информацию от одного пользователя к другому, из одной группы (локальной или глобальной) в другую, из домена в домен.
Например, если пользователь [User] перешел из одного домена (DomainA) в другой (DomainB), администратор может заменить учетную запись DomainA\User на DomainB\User в информации о безопасности для файлов пользователя. Это даст пользователю доступ к его файлам из нового домена.
SubInACL позволяет администраторам выполнять следующие действия:
- Отображать информацию о безопасности файлов, ключей реестра и служб. Эта информация содержит имя владельца, группы, список контроля доступа (ACL), избирательное (дискреционное) управление доступом (DACL) и системные ACL (SACL).
- Менять владельца объекта.
- Заменить информацию безопасности для одного идентификатора (учетной записи, группы, SID) информацией другого идентификатора.
- Переносить информацию о безопасности объектов. Это может пригодиться при реорганизации домена для переноса сведений о безопасности файлов из одного домена в другой.
Функциональные возможности
SubInACL обладает рядом возможностей, не реализованных в операционной системе.
Концепция
Для понимания основ, что такое дескрипторы безопасности и какую роль они играют в контроле доступа, см. “Основы управления доступом” в Центре справки и поддержки Windows Server 2003.
Системные требования
Операционная система Windows XP Professional или Windows Server 2003. (Прим.пер. работает и в Vista/7)
Этот инструмент предназначен для использования администраторами. Некоторые действия могут вызывать сбои или сообщения об ошибках, если пользователь не имеет следующих привилегий:
- SeBackupPrivilege — Архивирование файлов и каталогов
- SeChangeNotifyPrivilege — Обход перекрестной проверки
- SeRestorePrivilege — Восстановление файлов и каталогов
- SeSecurityPrivilege — Управление аудитом и журналом безопасности
- SeTakeOwnershipPrivilege — Овладение файлами или другими объектами.
- SeTcbPrivilege — Работа в режиме операционной системы
Требуемые файлы
- Subinacl.exe
Примечания
Сравнение SubInACL с утилитой find в UNIX
Синтаксис SubInACL является аналогичным утилите find в UNIX. Для каждого объекта утилита:
- Получает дескриптор безопасности объекта имя_объекта. Для получения дополнительной информации см. раздел Использование SID в Subinacl.
- Выполняет одну или несколько команд, которые выполняются в том порядке, в котором они объявлены в командной строке.
Если дескриптор безопасности был изменен и ключ /testmode не был указан, эти изменения сразу будут применены к объекту. Вы можете указать в одной строке столько команд, сколько вам нужно. Вы должны указать как минимум три первых символа каждой команды. Синтаксис не чувствителен к регистру.
Редактирование в SubInACL
SubInACL позволяет изменять следующие части дескриптора безопасности:
- Владелец
- Основная группа
- Список контроля доступа (ACL) и записи управления доступом (ACE) (далее по тексту аудит ACL и AACE, соответственно)
- Избирательное управление доступом (Discretionary ACL) и элементов управления доступом (ACE) (далее по тексту разрешение ACL и PACE, соответственно)
Использование SID в SubInACL
Дескриптор безопасности ссылается на группы пользователей с помощью идентификатора безопасности (SID). SID может быть выражен как:
- Имя_домена\Имя_учетной_записи (например, DOM\Администраторы)
- Сервер\Группа
- Учетная запись
- Последовательностью S-1-х-х-х-х-х-х*
*где Х выражается в десятичной системе (например, S-1-5-21-56248481-1302087933-1644394174-1001).
Предупреждение
Для заданного SID не проверяется, существует ли он.
SubInACL поддерживает локальный список идентификаторов SID для сведения к минимуму запросов по сети при преобразовании идентификаторов SID в имена.
Использование записей ACE в SubInACL
При использовании команд /grant и /deny применяются следующие сокращения для их аргументов.
Разрешения файлов
Следующие параметры PACE действительны для объекта Файл
| PACE | Значение |
| F | Полный доступ |
| C | Изменение |
| R | Чтение |
| P | Смена разрешений |
| O | Смена владельца |
| X | Выполнение |
| E | Чтение и выполнение |
| W | Запись |
| D | Удаление |
Разрешения общего ресурса кластера (Cluster Share)
Следующие параметры PACE действительны для объекта cluster share
| PACE | Значение |
| F | Полный доступ |
| R | Чтение |
| C | Изменение |
Разрешения принтеров
Следующие параметры PACE действительны для объекта Принтер
| PACE | Значение |
| F | Полный доступ |
| M | Управление документами |
| P | Печать |
Разрешения реестра
Следующие параметры PACE действительны для объекта разделы и подразделы реестра
| PACE | Значение |
| F | Полный доступ |
| R | Чтение |
| A | Чтение разрешений |
| Q | Запрос значения |
| S | Задание значения |
| C | Создание подраздела |
| E | Перечисление подразделов |
| Y | Уведомление |
| L | Создание связи |
| D | Удаление |
| W | Запись DAC |
| O | Смена владельца |
Разрешения служб
Следующие параметры PACE действительны для объекта Службы
| PACE | Значение |
| F | Полный доступ |
| R | Общее чтение |
| W | Общая запись |
| X | Общее выполнение |
| L | Чтение разрешений |
| Q | Запрос конфигурации службы |
| S | Запрос состояния службы |
| E | Перечисление зависимых служб |
| C | Изменение конфигурации службы |
| T | Запуск службы |
| O | Остановка службы |
| P | Приостановить/Продолжить службу |
| I | Опрашивать службу |
| Обслуживать команды пользователя |
Разрешения общих папок
Следующие параметры PACE действительны для объекта Общие папки
| PACE | Значение |
| F | Полный доступ |
| R | Чтение |
| C | Изменение |
Разрешения базы метаданных IIS (Metabase PACEs)
Следующие параметры PACE действительны для объекта базы метаданных
| PACE | Значение |
| F | Полный доступ |
| R | Чтение — MD_ACR_READ |
| W | Запись — MD_ACR_WRITE |
| I | Ограниченная запись — MD_ACR_RESTRICTED_WRITE |
| U | Чтение незащищенных свойств — MD_ACR_UNSECURE_PROPS_READ |
| E | Перечисление ключей — MD_ACR_ENUM_KEYS |
| D | Запись DAC — MD_ACR_WRITE_DAC |
Разрешения процессов
Следующие параметры PACE действительны для объекта Процесс
| PACE | Значение |
| F | Полный доступ |
| R | Чтение |
| W | Запись |
| E | Выполнение |
Разрешения объектов безопасности SAM
Следующие параметры PACE действительны для объектов безопасности Security Accounts Manager (SAM)
| PACE | Значение |
| F | Полный доступ |
| R | Чтение |
| W | Запись |
| E | Выполнение |
Снижение нагрузки на сеть
Чтобы свести к минимуму загрузку сети при использовании SubInACL, используйте вместо нескольких отдельных команд, которые содержат идентификаторы SID, один командный, содержащий все эти команды файл, либо несколько команд над одним объектом в одной строке. Когда SubInACL преобразует SID, он сохраняет результат локально для повышения эффективности и сведения к минимуму сетевого трафика. После выполнения команд локальный список очищается. Поэтому, если вы выполняете четыре команды, каждая из которых требует преобразовать один и тот же SID, утилита будет преобразовывать один и тот же SID четыре раза. Однако если поместить эти четыре команды в одном командном файле, идентификаторы SID будут преобразованы только один раз.
Синтаксис
Описание синтаксиса сгруппировано по способам использования SubInACL:
- вызов справки о функциях утилиты
- использование ее в командной строке
- использование утилиты в собственных сценариях
Вызов справки
Subinacl /help [/full | Ключевое слово]
Параметры
/full
Показать подробную информацию о SubInACL.
Ключевые слова
[ /noverbose | /verbose | /verbose=1 | /verbose=2 | /testmode | /notestmode | /file | /subdirectories | /onlyfile | /share | /clustershare | /keyreg | /subkeyreg | /service | /printer | /kernelobject | /metabase | /display | /setowner | /replace | /changedomain | /migratetodomain | /findsid | /suppresssid | /confirm | /perm | /audit | /ifchangecontinue | /cleandeletedsidsfrom | /accesscheck | /setprimarygroup | /grant | /deny | /revoke ]
Показать информацию о конкретной опции, типе_объекта или команде.
/option
Показать информацию обо всех опциях SubInACL.
/action
Показать информацию обо всех командах SubInACL.
/object_type
Показать информацию обо всех типах_объектов SubInACL.
features
Показать информацию по возможностям SubInACL (по сути, выводится первая часть данной справки).
usage
Показать подробную информацию о синтаксисе SubInACL.
syntax
Показать обзор синтаксиса SubInACL.
sids
Показать информацию о способах записи SID и преобразовании их в SubInACL.
view_mode
Показать информацию о способах вывода информации на экран в SubInACL.
test_mode
Показать информацию об использовании тестового режима SubInACL.
object_type
Показать информацию о типах объектов с которыми SubInACL может работать.
domain_migration
Показать информацию о перемещении пользователя из одного домена в другой.
server_migration
Показать информацию о перемещении файловой системы сервера из одного домена в другой.
editing_features
Показать информацию о возможностях редактирования дескрипторов безопасности в SubInACL.
Дополнительно о ключе /help можно прочесть в разделе Примеры подраздел Примеры синтаксиса опций
Использование SubInACL в командной строке
Subinacl [/Опция] /тип_объекта имя_объекта [[/Команда[=Значение]..]
Параметры
Параметр /Опция может принимать следующие значения:
/outputlog=ИмяФайла
Перенаправляет вывод команды в указанный файл. В этот файл также будут сохраняться ошибки, если не была использована опция /errorlog. В противном случае ошибки будут выводиться в файл с логом ошибок, а весь остальной вывод — в указанный файл.
/errorlog=ИмяФайла
Перенаправляет все ошибки в указанный файл.
/alternatesamserver=ИмяСервера
Указывает сервер, который SubInACL будет использовать для поиска идентификаторов SID, если первая попытка найти SID не удалась. Полезно при осуществлении миграции сервера или домена.
/offlinesam=ИмяФайла
Указывает файл, который содержит базу имен и идентификаторов SID. Утилита SubInACL будет искать идентификатор в этом файле, а не на сервере. Полезно, когда домен недоступен или не существует.
/stringreplaceonoutput=String1=String2
Указывает SubInACL заменить все экземпляры String1 на String2 (Прим.пер. При использовании опции /outputlog).
/expandenvironmentsymbols
Позволяет SubInACL использовать переменные окружения, например — %username%. Это значение установлено по умолчанию и обратно по действию команде /noexpandenvironmentvariables.
/noexpandenvironmentsymbols
Запрещает SubInACL использовать переменные окружения. Полезно, когда SubInACL выполняется из командного файла.
/statistic
Отображает статистику работы по завершению. Это значение установлено по умолчанию.
/nostatistic
Скрывает отображение статистики работы по завершению.
/dumpcachedsids=ИмяФайла
После выполнения SubInACL вы можете сбросить содержимое буфера (cashe) идентификаторов SID в файл. Этот файл можно использовать при последующих запусках SubInACL (см. /offlinesam) для ускорения разрешения идентификаторов SID.
/separator=символ
Задает символ разделитель который SubInACL будет использовать вместо знака равенства ‘=’ в командах. Это позволит использовать знак равенства для других выражений в командной строке вместе с командами SubInACL.
/noverbose
Указывает SubInACL генерировать сокращенный вариант отчета для облегчения анализа. Вывод команд SubInACL в режиме /noverbose может быть сохранен в командный файл и воспроизведен (исполнен) позже.
/verbose
Указывает SubInACL вывести подробный отчет. Это уровень вывода отчета по умолчанию.
/verbose=1
Этот режим аналогичен /verbose. (прим.пер. Это не так)
/verbose=2
Этот режим аналогичен /verbose.
/testmode
Выполняет команды SubInACL в тестовом режиме и не применяет изменения к дескриптору безопасности объекта.
/notestmode
Исполняет SubInACL в режиме изменения, все команды применяются немедленно. Это значение установлено по умолчанию.
Параметр /тип_объекта может принимать следующие значения:
/file [=directoriesonly | =filesonly]
Определяет параметр имя_объекта как файл. При задании ключа /file параметр имя_объекта может идентифицировать файл, используя формат Universal Naming Convention (UNC) или простой локальный путь с указанием имени диска и подпапок. Параметр имя_объекта может также содержать вместо пути спецсимвол ‘*’.
Примечание
SubInACL не поддерживает тома с распределенной файловой системой (DFS).
/subdirectories | /subdirec [=directoriesonly | =filesonly]
Определяет параметр имя_объекта как папку, а также определяет, как SubInACL будет работать со всеми файлами в этой папке и ее подпапках. Когда задан один из ключей /subdirectories или /subdirec, параметр имя_объекта может идентифицировать файлы, используя формат UNC или простой локальный путь с указанием имени диска и подпапок. Параметр имя_объекта может также содержать вместо пути спецсимвол ‘*’.
/onlyfile
Открывает файл без использования механизма FindFilexxx. Допустимые значения для параметра имя_объекта, когда задан параметр /onlyfile — это именованные каналы (named pipes) или почтовые слоты (mailslots).
/samobject
Определяет параметр имя_объекта как объект Security Accounts Manager (SAM), как то —Пользователь, Локальная или Глобальная группа.
/share
Определяет параметр имя_объекта как сетевой общий ресурс (папку).
/clustershare
Определяет параметр имя_объекта как общий ресурс кластера.
/keyreg
Определяет параметр имя_объекта как раздел реестра.
/subkeyreg
Определяет параметр имя_объекта как раздел реестра и его подразделы.
/service
Определяет параметр имя_объекта как службу.
/process
Определяет параметр имя_объекта как процесс.
/printer
Определяет параметр имя_объекта как принтер.
/kernelobject
Определяет параметр имя_объекта как объект ядра (объекты диспетчера). Допустимые значения для параметра имя_объекта могут включать события, мьютексы, секции и т.д.
/metabase
Определяет параметр имя_объекта как свойство AdminACL базы метаданных Microsoft Internet Information Services (IIS).
Примечания
Этот /тип_объекта может быть использован только со следующими путями базы метаданных IIS:
/LM/MSFTPSVC
/LM/MSFTPSVC/n
/LM/W3SVC
Этот параметр не поддерживает перечисления
Параметр имя_объекта задает имя объекта. Примеры смотрите в конкретных описаниях для параметров /тип_объекта.
Параметр /Команда может принимать следующие значения:
/display [=dacl | =sacl | =owner | =primarygroup | =sdsize | =sddl]
Отображает дескриптор безопасности для заданного объекта. Это значение установлено по умолчанию. Опциональные параметры позволяют задать, какую часть дескриптора безопасности SubInACL должна запросить. В сочетании с опцией /noverbose, команда /display пересчитывает значения дескриптора безопасности указанного объекта.
/setowner=Владелец
Заменяет владельца объекта. Использование параметра /owner=SID или /setowner=SID owner = DomainName\Administrators запрашивает SID группы Administrators на сервере, где располагается эта группа администраторов.
/owner=Владелец
Заменяет владельца указанного объекта. Владелец может быть задан действующим идентификатором SID в четырех разных формах. Подробнее смотрите подраздел Использование SID в SubInACL.
/replace=[DomainName\]OldAccount=[DomainName\]NewAccount
Заменяет все записи управления доступом (AACE и PACE) в указанном объекте
/accountmigration=DomainName\OldAccount=DomainName\NewAccount
Заменяет владельца или основную группу DomainName\OldAccount на DomainName\NewAccount. Например: команда /accountmigration=DOM_MARKETING\ChairMan=NEWDOM\NewChairMan продублирует все записи ACE, содержащиеся в DOM_MARKETING\ChairMan в SID учетной записи NewChairMan, полученной из домена NEWDOM. Подробнее смотрите команду /replace.
Осторожно
Если учетная запись DomainName\NewAccount уже имеет добавляемые записи ACE, то замена этих записей не выполняется!
/changedomain=OldDomainName=NewDomainName
Заменяет информацию безопасности(ACE) для учетной записи из OldDomainName аналогичными записями информации безопасности, найденными в домене NewDomainName.
/migratetodomain=SourceDomain=DestinationDomain
Добавляет записи ACE, найденные в домене SourceDomain, к соответствующим объектам в домене DestinationDomain, оставляя записи ACEs в SourceDomain без изменений.
/findsid=DomainName\Account[=stop | =continue]
Показывает информацию о параметре имя_объекта, содержащем в дескрипторе безопасности ссылку на учетную запись DomainName\Account. Если задан параметр =stop и учетная запись Account найдена, следующая команда будет пропущена и изменения не будут применены. Если задан параметр =stop и учетная запись Account не найдена, следующая команда будет исполнена. Если задан параметр =continue и учетная запись Account найдена, следующая команда будет исполнена. Если задан параметр =continue и учетная запись Account не найдена, следующая команда будет пропущена и изменения не будут применены.
/suppresssid=[DomainName\]Account
Удаляет все записи ACE находящиеся в учетной записи [DomainName\]Account. Если [DomainName\]Account являлся владельцем объекта, то новым владельцем объекта назначается группа «Все».
/confirm
Если размещена внутри группы параметров, запрашивает разрешение пользователя на выполнение следующего действия.
/perm
Удаляет все существующие записи PACE объекта.
/audit
Удаляет все существующие записи AACE объекта.
/ifchangecontinue
Продолжает обработку следующих в строке команд только в том случае, если предыдущие команды внесли изменения
/cleandeletedsidsfrom=DomainName [=dacl | =sacl | =owner | =primarygroup | =sdsize]
Удаляет все записи ACE содержащие удаленные (не действительные) идентификаторы SID в домене DomainName. Необязательные параметры позволяют указать нужные части дескриптора безопасности, в которых производится поиск недействительных SID.
/testmode
Предохраняет объект от изменений. Позволяет протестировать изменения вносимые SubInACL.
/accesscheck=[DomainName\]UserName
Показывает, разрешен ли доступ к объекту для учетной записи [DomainName\]UserName. Этой команде требуются привилегии SeTcbName (Работа в режиме операционной системы), и она не может применяться к удаленным объектам.
/setprimarygroup=[DomainName\]Group
Изменяет основную группу.
/grant=[DomainName\]UserName[=Доступ]
Добавляет записи PACE (разрешения) для учетной записи UserName. Допустимые значения параметра Доступ зависят от типа объекта указанного в имя_объекта. Все допустимые значения PACE перечислены в разделе Использование разрешений ACE в SubInACL. Если параметр Доступ не определен, предоставляется полный доступ.
/deny=[DomainName\]UserName[=Доступ]
Добавляет запрещающие записи PACE для указанного пользователя или группы. Допустимые значения параметра Доступ зависят от типа объекта указанного в имя_объекта. Все допустимые значения PACE перечислены в разделе Использование разрешений ACE в SubInACL. Если Доступ не определен, любой доступ к объекту запрещен.
/sgrant=[DomainName\]UserName[=Доступ]
Добавляет в AACE значение «Успех» для указанного пользователя. Если Доступ не определен, гарантируется полный доступ. Все допустимые значения PACE перечислены в разделе Использование разрешений ACE в SubInACL.
/sdeny=[DomainName\]UserName[=Доступ]
Добавляет в AACE значение «Отказ» для указанного пользователя. Если Доступ не определен, любой доступ к объекту запрещен. Все допустимые значения PACE, перечислены в разделе Использование разрешений ACE в SubInACL.
/revoke=[DomainName\]UserName
Аннулирует все разрешения PACEs для указанного пользователя или группы.
/compactsecuritydescriptor
Выполняет сжатие дескрипторов безопасности, удаляя неиспользуемые записи.
/pathexclude=Шаблон
Исключает все пути, содержащие значение Шаблон, и все вложенные объекты по указанным путям. Специальный символ * может использоваться внутри Шаблон для подстановки любых символов.
/objectexclude= Шаблон
Исключает все объекты с именами, совпадающими с параметром Шаблон. Специальный символ ‘*’ может использоваться внутри параметра Шаблон для подстановки любого числа любых символов.
[=Значение]
Значение параметра /Команда, если требуется.
Использование SubInACL в файлах сценариев
Subinacl [/Опция ..] /playfile ИмяФайла
Параметры
/Опция
Любые опции SubInACL, описанные выше.
ИмяФайла
Имя файла с командами, которые SubInACL должен выполнить. Вы можете создать его сами, или используя опции /noverbose и /display (прим.пер. А также опцию /outputlog).
Синтаксис командного файла, вызываемого через /playfile, аналогичен синтаксису SubInACL в командной строке, за исключением:
- Параметр /Опция не используется.
- Каждый параметр /тип_объекта предваряется символом плюса (+) вместо слэша (/).
- Соответствующие параметры /тип_объекта и имя_объекта объявляются вместе в одной строке.
- Каждая команда вместе с ее параметрами пишется в отдельной строке.
Дополнительно про использование ключа /playfile читайте в разделе Примеры — подраздел Примеры синтаксиса команд.
Примеры
Примеры использования
Пример 1
Задача в этом примере состоит в настройке доступа к файлам в папке \\Server\Share после перемещения User1 из OldDomain в NewDomain. Введите в командной строке следующее:
Subinacl /subdirec \\server\share\*.* /replace=OLDDOMAIN\USER1=NEWDOMAIN\User1
Нажмите ENTER.
Примечание
Оба домена должны иметь доверительные отношения.
Пример 2
Задача в этом примере состоит в миграции резервного контроллера домена (BDC) с именем MigrControl вместе со всеми файлами на нем в домен NewDomain и переносе пользователей из OldDomain в NewDomain.
Переустановите MigrControl в качестве основного контроллера домена (PDC) NewDomain, и не удаляйте файлы. Создайте пользователей домена NewDomain. Создайте доверительные отношения с доменом OldDomain. Для миграции файлов, напечатайте в командной строке следующее:
Subinacl /noverbose /subdirectories x:\*.* /changedomain=OLDDOMAIN=NEWDOMAIN
Нажмите ENTER.
Для того чтобы проверить изменения, напечатайте в командной строке следующее:
Subinacl /noverbose /subdirectories x:\*.*
Нажмите ENTER.
Пример 3
Задача в этом примере состоит в перемещении отдельного сервера и его пользователей в домен NewDomain. Введите сервер в домен NewDomain. Создайте пользователей домена NewDomain. Напечатайте в командной строке следующее:
Subinacl /noverbose /subdirectories \\SERVER\SHARE /changedomain=SERVER=NEWDOMAIN
Нажмите ENTER.
Пример 4
Задача в этом примере состоит в том, чтобы заменить пользователя «Jim» на «Kim» в каждом .txt файле в папке C:\Temp, отобразить дескрипторы безопасности для этих файлов и сохранить изменения. Напечатайте в командной строке следующее:
Subinacl /file c:\temp\*.txt /replace=Jim=Kim /display
Нажмите ENTER.
Примеры синтаксиса опций
/help
- Задача в этом примере состоит в отображении Справки на тему миграции домена. Напечатайте в командной строке следующее:
Subinacl /help domain_migration
Нажмите ENTER.
- Задача в этом примере состоит в отображении Справки о команде /setowner. Напечатайте в командной строке следующее:
Subinacl /help /setowner
Нажмите ENTER.
/outputlog
- Задача в этом примере состоит в получении параметров безопасности файла C:\Test.txt и сохранении всего вывода команды (включая ошибки) в файл C:\Alloutput.txt. Напечатайте в командной строке следующее
Subinacl /outputlog=C:\ALLOUTPUT.TXT /file C:\TEST.TXT /display
Нажмите ENTER.
/errorlog
- Задача в этом примере состоит в том, чтобы получить параметры безопасности файла C:\Test.txt, сохранить ошибки , полученные при выполнении команды, в файл C:\Errorlog.txt, а весь остальной вывод команды сохранить в файл C:\Nonerrors.txt. Напечатайте в командной строке следующее:
Subinacl /outputlog=c:\NONERRORS.TXT /errorlog=C:\ERRORLOG.TXT /file C:\TEST.TXT /display
Нажмите ENTER.
/alternatesamserver
- Задача в этом примере состоит в отображении параметров безопасности файла C:\Test.txt, используя альтернативный сервер \\Server1 для разрешения идентификатора SID, если SubInACL не сможет этого сделать на сервере, где находится файл. Напечатайте в командной строке следующее:
Subinacl /alternatesamserver=\\server1 /file C:\TEST.TXT /display
Нажмите ENTER.
/offlinesam
- Задача в этом примере состоит в миграции параметров безопасности файлов на сервере из одного домена в другой. Предполагается, что, вообще, у вас есть доступ к исходному домену, но во время миграции доступ отсутствует.
Выгрузите список имен и соответствующих им идентификаторов SID из исходного домена в текстовый файл C:\Samfile.txt. Используйте следующий формат:
_cachefileonly_=s-1-9-cacheonly
[Domain\UserName | Server\UserName]=SID
Напечатайте в командной строке следующее:
Subinacl /offlinesam=C:\SAMFILE.TXT / subdirectories \\SERVER\SHARE\*.* /migratedomain=SOURCEDOMAIN=DESTDOMAIN
Нажмите ENTER.
/stringreplaceonoutput
- Задача в этом примере состоит в перемещении файлов с диска E: на сервере \\Server1 на диск E: сервера \\Server2.
Для того, чтобы сохранить всю информацию о файлах на диске E: сервера \\Server1 в файл C:\Commandfile.txt, а ссылки на \\Server1 в этом файле заменить ссылками на \\Server2, напечатайте в командной строке следующее:
Subinacl /outputlog=c:\commandfile.txt /stringreplaceonoutput=\\server1=\\server2 /subdirectories E:\*.* /noverbose /display
Нажмите ENTER.
Скопируйте все файлы с диска E: сервера \\Server1 на диск E: сервера \\Server2.
Скопируйте файл Commandfile.txt на диск C: сервера \\Server2.
Для повторного применения параметров безопасности файлов на диске E: сервера \\Server2, напечатайте в командной строке следующее:
Subinacl /playfile c:\commandfile.txt
Нажмите ENTER.
/noexpandenvironmentsymbols
- Задача в этом примере состоит в запрещении SubInACL интерпретировать строки в качестве системных переменных. Напечатайте в командной строке следующее:
Subinacl /noexpandenvironmentsymbols /тип_объекта имя_объекта /action
Нажмите ENTER.
/separator
- Задача в этом примере состоит во временном определении символа тильды (~) как символа разделителя, чтобы опции, например, /stringreplaceonoutput могли работать со строками содержащими символ равно (=). Напечатайте в командной строке следующее:
Subinacl /separator=~ /stringreplaceonoutput~=europe\~=southerneurope /file *.* /noverbose /display
Нажмите ENTER.
/noverbose
- Задача в этом примере состоит в отображении краткой сводки параметров безопасности файла C:\Test.txt. Напечатайте в командной строке следующее:
Subinacl /noverbose /file c:\test.txt
Нажмите ENTER.
- Задача в этом примере состоит в сохранении параметров безопасности всех файлов на диске C: в файл D:\Filesettings.txt, так, чтобы они могли быть восстановлены при необходимости используя команды /playfile и /display. Напечатайте в командной строке следующее:
Subinacl /noverbose /outputlog=D:\FILESETTINGS.TXT /subdirectories C:\*.* /display
Нажмите ENTER.
/verbose
- Задача в этом примере состоит в отображении подробной информации о параметрах безопасности файла C:\Test.txt. Напечатайте в командной строке следующее:
Subinacl /verbose /file C:\TEST.TXT
Нажмите ENTER.
/testmode
- Задача в этом примере состоит в тестировании и проверке синтаксиса команд, без применения изменений. Вы хотите сменить имя домена во всех дескрипторах безопасности всех файлов в папке Share1 и ее поддиректориях на сервере \\Server1 с DomA на DomB; Однако Вы сначала хотите протестировать команды. Напечатайте в командной строке следующее:
Subinacl / subdirectories \\SERVER1\SHARE1\*.* /changedomain=DOMA=DOMB /ifchangecontinue /noverbose /display /testmode
Нажмите ENTER.
Примеры синтаксиса_объектов
/file
- Задача в этом примере состоит в отображении параметров безопасности всех файлов с расширением .obj в текущей папке. Напечатайте в командной строке следующее:
Subinacl /file *.obj /display
Нажмите ENTER.
- Задача в этом примере состоит в отображении параметров безопасности всех файлов с расширением .obj в папке C:\Temp. Напечатайте в командной строке следующее:
Subinacl /file C:\TEMP\*.obj /display
Нажмите ENTER.
- Задача в этом примере состоит в отображении параметров безопасности всех файлов с расширением .exe в общей папке \\Server1\Share1. Напечатайте в командной строке следующее:
Subinacl /file \\server1\share1\*.exe /display
Нажмите ENTER.
- Задача в этом примере состоит в отображении параметров безопасности папки, которая открыта для общего доступа с именем \\Server1\Share1 (без отображения информации о файлах в этой папке). Напечатайте в командной строке следующее:
Subinacl /file=directoriesonly \\server1\share1 /display
Нажмите ENTER.
- Задача в этом примере состоит в отображении параметров безопасности всех файлов в папке, которая открыта для общего доступа с именем \\Server1\Share1 без отображения информации о папке и ее подпапках. Напечатайте в командной строке следующее:
Subinacl /file=filesonly \\server1\share1 /display
Нажмите ENTER.
/subdirectories
- Задача в этом примере состоит в отображении параметров безопасности всех файлов с расширением .obj в папке C:\Temp и всех ее подпапках. Напечатайте в командной строке следующее:
Subinacl /subdirectories C:\TEMP\*.obj /display
Нажмите ENTER.
- Задача в этом примере состоит в отображении параметров безопасности всех файлов с расширением .obj в папке C:\Temp\Test и всех ее подпапках. Напечатайте в командной строке следующее:
Subinacl /subdirectories C:\TEMP\TEST\*.OBJ /display
Нажмите ENTER.
- Задача в этом примере состоит в отображении параметров безопасности только папок и подпапок без файлов. Напечатайте в командной строке следующее:
Subinacl /subdirectories=directoriesonly C:\*.* /display
Нажмите ENTER.
/onlyfile
- Задача в этом примере состоит в отображении параметров безопасности именованного канала PipeName. Напечатайте в командной строке следующее:
Subinacl /onlyfile \\.\pipe\PipeName /display
Нажмите ENTER.
/samobject
- Задача в этом примере состоит в отображении параметров безопасности локальной группы Group1 на сервере Server1. Напечатайте в командной строке следующее:
Subinacl /samobject \\SERVER1\GROUP1 /display
Нажмите ENTER.
- Задача в этом примере состоит в отображении параметров безопасности учетных записей пользователей содержащих строку users на сервере Server1. Напечатайте в командной строке следующее:
Subinacl /samobject \\SERVER1\*users* /display
Нажмите ENTER.
- Задача в этом примере состоит в отображении параметров безопасности локальных групп содержащих строку groups на сервере Server1. Напечатайте в командной строке следующее:
Subinacl /samobject \\SERVER1\*groups* /display
Нажмите ENTER.
- Задача в этом примере состоит в предоставлении Опытному пользователю Poweruser1 полного доступа к группе TestGroup, которая была создана другим Опытным пользователем. Напечатайте в командной строке следующее:
Subinacl /samobject \\SERVER1\TESTGROUP /grant=poweruser1=f
Нажмите ENTER.
/share
- Задача в этом примере состоит в отображении параметров безопасности общей сетевой папки \\Server1\Share1. Напечатайте в командной строке следующее:
Subinacl /share \\SERVER1\SHARE1 /share
Нажмите ENTER.
/clustershare
- Задача в этом примере состоит в отображении параметров безопасности объекта clustershare \\Cluster1\Share1. Напечатайте в командной строке следующее:
Subinacl /clustershare \\CLUSTER1\SHARE1 /display
Нажмите ENTER.
/keyreg
- Задача в этом примере состоит в отображении параметров безопасности расположенного на сервере \\Server1 раздела реестра HKEY_LOCAL_MACHINE\SOFTWARE. Напечатайте в командной строке следующее:
Subinacl /keyreg \\SERVER1\HKEY_LOCAL_MACHINE\SOFTWARE /display
Нажмите ENTER.
/subkeyreg
- Задача в этом примере состоит в отображении параметров безопасности раздела реестра HKEY_LOCAL_MACHINE\SOFTWARE и его подразделов, расположенных на сервере \\Server1. Напечатайте в командной строке следующее:
Subinacl /subkeyreg \\SERVER1\HKEY_LOCAL_MACHINE\SOFTWARE /display
Нажмите ENTER.
/service
- Задача в этом примере состоит в отображении параметров безопасности службы Messenger на локальном компьютере. Напечатайте в командной строке следующее:
Subinacl /service Messenger /display
Нажмите ENTER.
- Задача в этом примере состоит в отображении параметров безопасности службы Messenger на сервере \\Server1. Напечатайте в командной строке следующее:
Subinacl /service \\SERVER1\MESSENGER /display
Нажмите ENTER.
/printer
- Задача в этом примере состоит в отображении параметров безопасности общего сетевого принтера \\Server1\Printer1. Напечатайте в командной строке следующее:
Subinacl /printer \\SERVER1\PRINTER1 /display
Нажмите ENTER.
/kernelobject
- Задача в этом примере состоит в отображении параметров безопасности мьютекса с именем _outlook_mutex_. Напечатайте в командной строке следующее:
Subinacl /kernelobject _outlook_mutex_ /display
Нажмите ENTER.
/process
- Задача в этом примере состоит в отображении параметров безопасности программы Блокнот. Напечатайте в командной строке следующее:
Subinacl /process notepad.* /display
Нажмите ENTER.
- Задача в этом примере состоит в отображении параметров безопасности процесса с идентификатором процесса PID 1234. Напечатайте в командной строке следующее:
Subinacl /process 1234 /display
Нажмите ENTER.
/metabase
- Задача в этом примере состоит в предоставлении администраторам полного доступа к свойствам папки \LM\W3SVC на сервере \\Server1. Напечатайте в командной строке следующее:
Subinacl /metabase \\SERVER1\LM\W3SVC /grant=administrators=f
Нажмите ENTER.
Примеры синтаксиса команд
/display
- Задача в этом примере состоит в отображении параметров безопасности файлов на диске C:. Напечатайте в командной строке следующее:
Subinacl /file C:\*.* /display
Нажмите ENTER.
- Задача в этом примере состоит в сохранении параметров безопасности файлов на диске C: в файл D:\Securitysettings.txt. Напечатайте в командной строке следующее:
Subinacl /file /outputlog=D:\SECURITYSETTINGS.TXT C:\*.* /display /noverbose
Нажмите ENTER.
/owner
- Задача в этом примере состоит в том, чтобы сделать пользователя Domain1\User1 владельцем файла C:\Test.txt. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /owner=DOMAIN1\USER1
Нажмите ENTER.
/replace
- Задача в этом примере состоит в замене пользователя Domain1\User1 на Domain2\User2 во всех записях ACE всех файлов на диске C: Напечатайте в командной строке следующее:
Subinacl /file C:\*.* /replace=DOMAIN1\USER1=DOMAIN2\USER2
Нажмите ENTER.
/changedomain
- Задача в этом примере состоит в замене всех записей ACE которые имеют идентификаторы SID из домена Domain1 на идентификаторы SID того же пользователя, но уже из домена Domain2 для всех файлов на диске C:. Напечатайте в командной строке следующее:
Subinacl /subdirectories C:\*.* /changedomain=domain1=domain2
Нажмите ENTER.
- Задача в этом примере состоит в замене всех записей ACE, которые имеют идентификатор SID пользователя User1 в домене Domain1, на идентификатор SID пользователя User2 в домене Domain2 для всех файлов на диске C:. Используйте файл перенаправления (mapping file).
Создайте файл перенаправления (mapping file), содержащий всего одну строку «USER1=USER2», и сохраните файл с именем Mapfile.txt. Напечатайте в командной строке следующее:
Subinacl / subdirectories C:\*.* /changedomain=domain1=domain2=MAPFILE.TXT
Нажмите ENTER.
/migratetodomain
- Задача в этом примере состоит в переносе записей ACE пользователя домена Domain1 в домен Domain2 для всех файлов на диске С:, оставив при этом нетронутыми исходные записи ACE домена Domain1. Напечатайте в командной строке следующее:
Subinacl / subdirectories C:\*.* /changedomain=domain1=domain2
Нажмите ENTER.
- Задача в этом примере состоит в создании новых записей ACE в идентификаторе безопасности (SID) пользователя Domain2\User2 для всех файлов на диске C:, имеющих идентификатор безопасности пользователя Domain1\User1. Используйте файл перенаправления (mapping file).
Создайте файл перенаправления (mapping file) содержащий всего одну строку «USER1=USER2» и сохраните файл под именем Mapfile.txt. Напечатайте в командной строке следующее:
Subinacl / subdirectories C:\*.* /changedomain=domain1=domain2=mapfile.txt
Нажмите ENTER.
/findsid
- Задача в этом примере состоит в отображении имен файлов на диске C:, которые имеют записи в дескрипторах безопасности, совпадающие с идентификаторам SID — Domain1\User1. Напечатайте в командной строке следующее:
Subinacl / subdirectories C:\*.* /findsid=DOMAIN1\USER1
Нажмите ENTER.
- Задача в этом примере состоит в отображении имен файлов на диске C:, которые имеют записи в дескрипторах безопасности, совпадающие с идентификаторам SID — Domain1\User1, и если найдено совпадение, не выполнять другие команды и не применять изменения. Напечатайте в командной строке следующее:
Subinacl / subdirectories C:\*.* /findsid=DOMAIN1\USER1=stop
Нажмите ENTER.
/suppresssid
- Задача в этом примере состоит в удалении всех записей ACE, ссылающихся на пользователя Domain1\User1 в файле C:\Test.txt. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /suppresssid=DOMAIN1\USER1
Нажмите ENTER.
/confirm
- Задача в этом примере состоит в следующем: начать очистку и удаление неисправных идентификаторов SID из домена Domain1. Искать требуется только части DACL и SACL дескриптора безопасности каждого файла и запрашивать разрешение пользователя каждый раз, когда удаляется первая запись ACE, содержащая неправильный идентификатор SID. Напечатайте в командной строке следующее:
Subinacl /file *.* /cleandeletedsidsfrom=domain1=dacl /cleandeletedsidsfrom=domain1=sacl /ifchangcontinue /confirm
Нажмите ENTER.
/perm
- Задача в этом примере состоит в удалении всех существующих записей ACE (PACE) для файла C:\Test.txt. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /perm
Нажмите ENTER.
/audit
- Задача в этом примере состоит в удалении всех существующих записей ACE аудита (AACE) в файле C:\Test.txt. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /audit
Нажмите ENTER.
/accesscheck
- Задача в этом примере состоит в отображении доступа пользователя Domain1\User1 для файла C:\Test.txt. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /accesscheck=domain1\user1
Нажмите ENTER.
/setprimarygroup
- Задача в этом примере состоит в установке Domain1\Group1 в качестве основной группы для файла C:\Test.txt. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /setprimarygroup=domain1\group1
Нажмите ENTER.
/grant
- Задача в этом примере состоит в предоставлении пользователю Domain1\User1 права стать владельцем файла C:\Test.txt, используя записи PACE. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /grant=domain1\user1=o
Нажмите ENTER.
- Задача в этом примере состоит в разрешении пользователю Domain1\User1 исполнять и становится владельцем файла C:\Test.txt. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /grant=domain1\user1=xo
Нажмите ENTER.
/deny
- Задача в этом примере состоит в запрете пользователю Domain1\User1 становиться владельцем файла C:\Test.txt, используя записи PACE. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /deny=domain1\user1=o
Нажмите ENTER.
- Задача в этом примере состоит в запрете пользователю Domain1\User1 исполнять файл C:\Test.txt и становится его владельцем. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /deny=domain1\user1=xo
Нажмите ENTER.
/revoke
- Задача в этом примере состоит в отмене всех разрешений PACE файла C:\Test.txt для пользователя Domain1\User1. Напечатайте в командной строке следующее:
Subinacl /file C:\TEST.TXT /revoke=domain1\user1
Нажмите ENTER.
/compactsecuritydescriptor
- Задача в этом примере состоит в уменьшении размера дескрипторов безопасности, созданных некоей дисковой утилитой. Вы использовали команду /display=sdsize для получения размера этих дескрипторов и обнаружили, что утилита создала дескрипторы безопасности большого размера, содержащие очень мало данных. Вы хотите уменьшить размера дескрипторов безопасности на диске. Напечатайте в командной строке следующее:
Subinacl /subdirectories C:\*.* /compactsecuritydescriptor
Нажмите ENTER.
/pathexclude
- Задача в этом примере состоит в исключении из списка информации отображаемой SubInACL всех папок с именами, начинающимися на «TESTING». Напечатайте в командной строке следующее:
Subinacl /file C:\*.* /display /pathexclude=TESTING*
Нажмите ENTER.
/objectexclude
- Задача в этом примере состоит в исключении из списка информации отображаемой SubInACL всех файлов с расширением .asp. Напечатайте в командной строке следующее:
Subinacl /file *.* /display /objectexclude=*.asp
Нажмите ENTER.
/playfile
- Задача в этом примере состоит в предоставлении разрешения Чтение группе Все для файла C:\Test1.txt и разрешения Чтение и Запись для файла C:\Test2.txt. Вы можете напечатать в командной строке следующее:
Subinacl /file C:\TEST1.TXT /grant=everyone=r /noverbose /display
Subinacl /file C:\TEST2.TXT /grant=everyone=rw /noverbose /display
Для выполнения тех же действий из командного файла сделайте следующее:
Создайте текстовый файл с названием Commandfile.txt и содержащий строки:
+file C:\TEST1.TXT
/grant=everyone=r
/noverbose
/display
+file C:\TEST2.TXT
/grant=everyone=rw
/noverbose
/display
Напечатайте в командной строке:
Subinacl /playfile COMMANDFILE.TXT
Нажмите ENTER.
- Задача в этом примере состоит в сохранении параметров безопасности всех файлов на диске C: в файл D:\Subinaclsave.txt в формате, который сможет потом воспроизвести команда /playfile. Напечатайте в командной строке следующее:
Subinacl /noverbose /outputlog=D:\subinaclsave.txt /subdirectories c:\*.* /display
Нажмите ENTER.
Для применения сохраненных параметров, напечатайте в командной строке следующее:
Subinacl /playfile D:\subinaclsave.txt
Нажмите ENTER.
Похожие утилиты
Следующие утилиты схожи с Subinacl.exe:
- Permcopy.exe: Копирование разрешений для разделяемых ресурсов
- Perms.exe: Работа с разрешениями файлов
- Showacls.exe: Отображение списков ACL
(с) 2010 Перевод Азаров Денис
Reblogged this on Mcp Club Minsk's Blog and commented:
Новенькое это хорошо забытое старенькое