Администрирование схемы данных каталога

Для администрирования схемы данных каталога (раздел schema) в домене Эллес с помощью утилиты samba-tool используется группа подкоманд schema.

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

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

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

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

Классы объектов и атрибуты

Каждый объект в службе каталогов является экземпляром класса, для которого задается определение в схеме Active Directory. Класс объединяет в себе объекты с общими свойствами (например, пользователи, принтеры, приложения). Определение каждого класса содержит список атрибутов, которые могут использоваться для описания экземпляров данного класса. Например, класс User имеет атрибуты givenName, surname и streetAddress. Атрибуты класса делятся на обязательные и дополнительные. Поскольку каталог имеет иерархическую структуру, определение каждого класса также содержит список классов, описывающих объекты, которые являются родительскими по отношению к объектам данного класса.

Схема содержит определение для каждого атрибута, состоящее из уникальных идентификаторов атрибута, синтаксиса для его описания (типы данных для значений атрибута), допустимых диапазонов изменения значений атрибута, признака возможности задания только одного значения или нескольких значений для атрибута, а также правил поиска и индексирования атрибута. Для каждого атрибута в схеме существует строго одно определение, на которое ссылаются определения классов объектов.

Вносимые в схему изменения носят глобальный характер. Схема является единой для всего леса. С помощью механизмов репликации обеспечивается наличие копии схемы на каждом контроллере домена в лесу. Любое расширение схемы распространяется на весь лес.

Вносимые в схему дополнения являются необратимыми. Добавленный в схему новый класс или атрибут не может быть из нее удален. Существующий атрибут или класс может быть переведен в неактивное состояние, но удалить его невозможно.

Перевод класса или атрибута в неактивное состояние не влияет на существующие экземпляры данного класс или атрибута, но при этом делает невозможным создание новых экземпляров. Атрибут не может быть переведен в неактивное состояние, если он используется хотя бы в одном активном классе.

Получение определения класса объектов

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

samba-tool schema objectclass show <objectclass>

В качестве значения objectclass ожидается имя класса объектов схемы Active Directory.

Подкоманда выводит подробную информацию об указанном классе объектов в соответствии с его определением в схеме, включая:

  • классы, которые могут содержать в себе данный класс (PossiSuperiors);

  • обязательные атрибуты экземпляра класса (MustContain);

  • необязательные атрибуты экземпляра класса (MayContain).

Параметры

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

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

Примеры

Пример запроса определения класса person:

samba-tool schema objectclass show person
dn: CN=Person,CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
objectClass: top
objectClass: classSchema
cn: Person
instanceType: 4
whenCreated: 20230911100703.0Z
whenChanged: 20230911100703.0Z
uSNCreated: 1567
subClassOf: top
governsID: 2.5.6.6
mayContain: attributeCertificateAttribute
rDNAttID: cn
showInAdvancedViewOnly: TRUE
adminDisplayName: Person
adminDescription: Person
objectClassCategory: 0
lDAPDisplayName: person
name: Person
objectGUID: 5fef599f-5f08-4846-bb5e-e0a32eb27767
schemaIDGUID: bf967aa7-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
systemPossiSuperors: organizationalUnit
systemPossSuperiors: container
systemMayContain: userPassword
systemMayContain: telephoneNumber
systemMayContain: sn
systemMayContain: serialNumber
systemMayContain: seeAlso
systemMustContain: cn
defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
systemFlags: 16
defaultHidingValue: TRUE
objectCategory: CN=Class-Schema,CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
uSNChanged: 1568
distinguishedName: CN=Person,CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com

Получение списка классов объектов, ссылающихся на атрибут

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

samba-tool schema attribute show_oc <attribute> [options]

В качестве значения attribute ожидается LDAP-имя атрибута в схеме Active Directory.

Параметры

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

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

Примеры

Пример запроса списка классов объектов, экземпляры которых могут или должны содержать атрибут telephoneNumber:

samba-tool schema attribute show_oc telephoneNumber
--- MAY contain ---
documentSeries
Organization
room
Organizational-Unit
Mail-Recipient
Organizational-Role
rFC822LocalPart
Person
--- MUST contain ---

Получение определения атрибута

Для запроса определения атрибута (attribute) в разделе schema каталога используется следующий формат вызова:

samba-tool schema attribute show <attribute> [options]

В качестве значения attribute ожидается LDAP-имя атрибута в схеме Active Directory.

Подкоманда выводит подробную информацию об указанном атрибуте в соответствии с его определением в схеме.

Параметры

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

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

Примеры

Пример запроса определения атрибута telephoneNumber:

samba-tool schema attribute show telephoneNumber
dn: CN=Telephone-Number,CN=Schema,CN=Configuration,DC=homenet,DC=com
objectClass: top
objectClass: attributeSchema
cn: Telephone-Number
instanceType: 4
whenCreated: 20230911100701.0Z
whenChanged: 20230911100701.0Z
uSNCreated: 1436
attributeID: 2.5.4.20
attributeSyntax: 2.5.5.12
isSingleValued: TRUE
rangeLower: 1
rangeUpper: 64
mAPIID: 14856
uSNChanged: 1436
showInAdvancedViewOnly: TRUE
adminDisplayName: Telephone-Number
adminDescription: Telephone-Number
oMSyntax: 64
searchFlags: 0
lDAPDisplayName: telephoneNumber
name: Telephone-Number
objectGUID: 9cacbcd9-1a46-4a32-b251-22429d8e46d1
schemaIDGUID: bf967a49-0de6-11d0-a285-00aa003049e2
attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
systemOnly: FALSE
systemFlags: 16
isMemberOfPartialAttributeSet: TRUE
objectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,DC=homenet,DC=c
 om
distinguishedName: CN=Telephone-Number,CN=Schema,CN=Configuration,DC=homenet,D
 C=com

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

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

samba-tool schema attribute modify <attribute> [options]

В качестве значения attribute ожидается LDAP-имя атрибута в схеме Active Directory.

Подкоманда переопределяет значения флагов searchFlags, задающих правила поиска и индексации для атрибута схемы.

Значения флагов передаются в параметре --searchflags.

Наиболее значимые флаги:

  • fATTINDEX — указание для контроллера домена на необходимость индексирования атрибута;

  • fPDNTATTINDEX — указание для контроллера домена на необходимость индексирования атрибута и содержащего его контейнера;

  • fANR — признак включения атрибута в поиск с помощью алгоритма ANR (Ambiguous Name Resolution);

  • fPRESERVEONDELETE — признак сохранения атрибута при установке на объект отметки об удалении;

  • fCOPY — указание клиентам LDAP на необходимость копирования атрибута при создании копии объекта;

  • fTUPLEINDEX — указание для контроллера домена на необходимость создания кортежного индекса для данного атрибута (влияет на скорость поиска по подстроке);

  • fSUBTREEATTINDEX — указание для контроллера домена на необходимость индексирования атрибута в рамках операций поиска Virtual List View (VLV);

  • fCONFIDENTIAL — признак того, что атрибут относится к конфиденциальной информации и для доступа к нему требуется пройти дополнительные проверки;

  • fNEVERVALUEAUDIT — признак отсутствия необходимости аудита изменений, вносимых в атрибут;

  • fRODCFILTEREDATTRIBUTE — признак того, что атрибут не должен реплицироваться на контроллеры домена с ролью RODC;

  • fEXTENDEDLINKTRACKING — указание контроллеру домена на необходимость контроля связанных атрибутов;

  • fBASEONLY — признак того, что атрибут не должен возвращаться поисковыми запросами, область действия которых не ограничена одним объектом;

  • fPARTITIONSECRET — признак того, что атрибут относится к секретам и для доступа к нему требуется пройти дополнительные проверки.

Параметры

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

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

  • --searchflags — значения флагов, задающих правила поиска и индексирования атрибута (searchFlags).

Примеры

Пример изменения правил поиска и индексирования для атрибута uid:

samba-tool schema attribute modify uid \
--searchflags="fATTINDEX,fPRESERVEONDELETE"