Администрирование списков управления доступом (ACL)

Для администрирования записей в списках управления доступом (ACL), задающих разрешения для объектов службы каталогов в домене Samba AD, с помощью утилиты samba-tool используется группа подкоманд dsacl.

При выполнении операций с помощью группы подкоманд dsacl рекомендуется указывать набор ключей -H (URI LDAP-сервера) и --use-kerberos=required.

В этом случае для успешного выполнения подкоманды:

  • либо пользователь должен работать на сервере под доменной учетной записью;

  • либо предварительно требуется запросить билет Kerberos с помощью стандартной команды kinit.

Получение записей из списка управления доступом

Для получения записей из списка управления доступом к объекту службы каталогов в домене Samba AD используется следующий формат вызова:

samba-tool dsacl get [options]

Подкоманда возвращает список записей управления доступом (ACE) к объекту службы каталогов, переданному в параметре --objectdn, в виде строк на языке определения дескрипторов безопасности (SDDL) в следующем формате:

ace_type;ace_flags;rights;object_guid;inherit_object_guid;account_sid;(resource_attribute)

Строка состоит из следующих элементов:

  • ace_type — тип записи управления доступом;

    Например, значение OA соответствует типу ACE ACCESS_ALLOWED_OBJECT_ACE_TYPE, указывающему на то, что в записи ACE используется структура ACCESS_ALLOWED_OBJECT_ACE для предоставления доступа к объекту, набору свойств или свойству. Значение OD соответствует типу ACE ACCESS_DENIED_OBJECT_ACE_TYPE, указывающему на то, что в записи ACE используется структура ACCESS_DENIED_OBJECT_ACE для запрета доступа к объекту, набору свойств или свойству.

  • ace_flags — набор флагов элементов управления, относящихся к типу ACE;

    Например, значение CI соответствует флагу CONTAINER_INHERIT_ACE, указывающему на то, что запись ACE наследуется контейнерами, а значение IO соответствует флагу INHERIT_ONLY_ACE, указывающему на то, что запись ACE не управляет доступом к объекту, за которым она закреплена.

  • rights — права доступа, контролируемые ACE;

    Например, значение RP соответствует праву на чтение свойств объекта (ADS_RIGHT_DS_READ_PROP). GUID, определяющий набор свойств или свойство, на которые распространяется право, содержится в элементе ObjectType записи ACE. Если элемент ObjectType не содержит GUID, запись ACE управляет правом на чтение всех свойств объекта.

    Значение CR указывает на то, что для управления выполнением операции используется расширенное право доступа (ADS_RIGHT_DS_CONTROL_ACCESS). В этом случае элемент ObjectType записи ACE может содержать GUID определенного расширенного права. Если элемент ObjectType не содержит GUID, запись ACE управляет доступом ко всем операциям с расширенными правами, связанными с объектом.

  • object_guid — строковое представление GUID, указывающее значение элемента ObjectType структуры ACE;

    Например, GUID расширенного права, разрешающего сброс пароля для учетной записи пользователя, имеет значение 00299570-246d-11d0-a768-00aa006e0529.

  • inherit_object_guid — строковое представление GUID, указывающее значение элемента InheritedObjectType структуры ACE;

    Например, GUID для типа User имеет значение bf967aba-0de6-11d0-a285-00aa003049e2.

  • account_sid — строка идентификатора безопасности (SID) учетной записи (trustee), которой будет выдано право в контексте записи ACE;

  • resource_attribute (необязательный элемент) — строка, указывающая тип данных.

Пример строки ACE, задающей разрешение на сброс паролей пользователей:

(OA;CIIO;CR;00299570-246d-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;<sid>)

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта;

  • --objectdn=OBJECTDN — уникальное составное имя (DN) объекта, для которого требуется получить список разрешений из дескриптора безопасности (SD).

Примеры

Пример получения списка записей, задающих права для управления доступом к подразделению OrgUnit:

samba-tool dsacl get --objectdn='OU=OrgUnit,DC=samba,DC=example,DC=com' -H  ldap://samba.samdom.example.com -U administrator

Добавление записей в список управления доступом

Для добавления в список контроля доступа записей, задающих разрешения для объекта службы каталогов в домене Samba AD, используется следующий формат вызова:

samba-tool dsacl set [options]

Подкоманда добавляет в список управления доступом объекта службы каталогов, переданного в параметре --objectdn, запись ACE в соответствии со значением параметра --sddl либо в соответствии со значениями параметров --car, --action и --trusteedn.

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта;

  • --objectdn=OBJECTDN — уникальное составное имя (DN) объекта, для которого требуется добавить разрешение в дескриптор безопасности (SD);

  • --action — разрешить/запретить доступ; возможные значения:

    • allow — разрешить доступ;

      Соответствует строке ACE на SDDL следующего вида:

      (OA;;CR;<car>;;<sid>)

      В строке

      • <car> — право доступа, которое должно быть предоставлено;

      • <sid> — идентификатор безопасности (SID) объекта с DN-именем, переданным в параметре --trusteedn, которому должно быть предоставлено право доступа.

    • deny — запретить доступ;

      Соответствует строке ACE на SDDL следующего вида:

      (OD;;CR;<car>;;<sid>)

      В строке:

      • <car> — право доступа, которое должно быть запрещено;

      • <sid> — идентификатор безопасности (SID) объекта с DN-именем, переданным в параметре --trusteedn, для которого должно быть запрещено право доступа.

  • --car — право доступа (CAR); возможные значения:

    • change-rid — расширенное право, необходимое для изменения владельца роли FSMO RID Master (GUID права — d58d5f36-0a98-11d1-adbb-00c04fd8d5cd);

    • change-pdc — расширенное право, необходимое для изменения владельца роли FSMO PDC Emulator (GUID права — bae50096-4752-11d1-9052-00c04fc2d4cf);

    • change-infrastructure — расширенное право, необходимое для изменения владельца роли FSMO Infrastructure Master (GUID права — cc17b1fb-33d9-11d2-97d4-00c04fd8d5cd);

    • change-schema — расширенное право, необходимое для изменения владельца роли FSMO Schema Master (GUID права — e12b56b6-0a95-11d1-adbb-00c04fd8d5cd);

    • change-naming — расширенное право, необходимое для изменения владельца роли FSMO Domain Naming Master (GUID права — 014bf69c-7b3b-11d1-85f6-08002be74fab);

    • allocate_rids — расширенное право, необходимое для запроса пула относительных идентификаторов (RID) (GUID права — 1abd7cf8-0a99-11d1-adbb-00c04fd8d5cd);

    • get-changes — расширенное право, необходимое для репликации изменений из заданного раздела каталога (GUID права — 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2);

    • get-changes-all — расширенное право, необходимое для репликации секретных данных домена (GUID права — 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2);

    • get-changes-filtered — расширенное право, необходимое для репликации изменений в отфильтрованном наборе (GUID права — 89e95b76-444d-4c62-991a-0facbeda640c);

    • topology-manage — расширенное право, необходимое для изменения топологии репликации для заданного раздела каталога (GUID права — 1131f6ac-9c07-11d1-f79f-00c04fc2dcd2);

    • topology-monitor — расширенное право, необходимое для чтения данных мониторинга репликации, включая статус репликации и метаданные объектов (GUID права — f98340fb-7c5b-4cdb-a00b-2ebdfa115a96);

    • repl-sync — расширенное право, необходимое для синхронизации репликации из заданного раздела каталога (GUID права — 1131f6ab-9c07-11d1-f79f-00c04fc2dcd2);

    • ro-repl-secret-sync — расширенное право, необходимое для синхронизации репликации секретных данных домена в режиме read-only (GUID права – 1131f6ae-9c07-11d1-f79f-00c04fc2dcd2);

  • --trusteedn — уникальное составное имя (DN) объекта службы каталогов, которому предоставляется или запрещается доступ к праву;

  • --sddl — одна или несколько строк ACE на языке определения дескрипторов безопасности (SDDL), задающих права для добавления в список управления доступом.

Примеры

Пример добавления в список управления доступом к объекту службы каталога, переданному в параметре --objectdn (подразделение OrgUnit), записи о выдаче права на сброс паролей (GUID права — 00299570-246d-11d0-a768-00aa006e0529) пользователей, являющихся участниками подразделения OrgUnit, учетной записи с указанным идентификатором безопасности (<sid>):

samba-tool dsacl set --action=allow --objectdn='OU=OrgUnit,DC=samdom,DC=example,DC=com' --sddl="(OA;CIIO;CR;00299570-246d-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;<sid>)" -H  ldap://samba.samdom.example.com -U administrator

Удаление записей из списка управления доступом

Для удаления записи из списка контроля доступа для объекта службы каталогов в домене Samba AD используется следующий формат вызова:

samba-tool dsacl delete [options]

Подкоманда удаляет из списка управления доступом к объекту службы каталогов, переданному в параметре --objectdn, одну или несколько строк ACE, переданных в параметре --sddl.

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта;

  • --objectdn=OBJECTDN — уникальное составное имя (DN) объекта, из дескриптора безопасности (SD) которого требуется удалить разрешения;

  • --sddl — одна или несколько строк ACE на языке определения дескрипторов безопасности (SDDL), задающих права для удаления из списка управления доступом.

Примеры

Пример удаления из списка управления доступом к объекту службы каталога, переданному в параметре --objectdn (подразделение OrgUnit), записи о выдаче права на сброс паролей (GUID права — 00299570-246d-11d0-a768-00aa006e0529) пользователей, являющихся участниками подразделения OrgUnit, учетной записи с указанным идентификатором безопасности (<sid>):

samba-tool dsacl delete --objectdn='OU=OrgUnit,DC=samdom,DC=example,DC=com' --sddl="(OA;CIIO;CR;00299570-246d-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;
<sid>)" -H  ldap://samba.samdom.example.com -U administrator