Subinacl. Русская справка.

Все права на 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 Перевод Азаров Денис

One comment

  1. Reblogged this on Mcp Club Minsk's Blog and commented:

    Новенькое это хорошо забытое старенькое

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

%d такие блоггеры, как: