Администрирование динамических объектов

Для администрирования динамических объектов с помощью утилиты samba-tool используется группа подкоманд dynamicobject.

Общие сведения

Динамические объекты каталога предназначены для хранения временных записей, которые автоматически удаляются по истечении заданного срока жизни. Время жизни объекта задается параметром TTL (Time-To-Live), который определяет продолжительность существования объекта в секундах. На основе этого значения вычисляется атрибут msDS-Entry-Time-To-Die, содержащий абсолютное время удаления объекта. После наступления этого момента объект автоматически удаляется механизмом сборки мусора (garbage collector).

Для управления динамическими объектами используется утилита samba-tool. Она позволяет выполнять базовые операции по работе с динамическими объектами (создание, изменение, просмотр информации, очистка, продление времени жизни), а также управлять параметрами времени жизни по умолчанию для всего леса доменов. Значения DynamicObjectDefaultTTL и DynamicObjectMinTTL, определяющие соответственно значение TTL по умолчанию и минимально допустимое значение TTL, настраиваются в атрибуте msDS-Other-Settings объекта CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=<domain>,DC=<tld>. Эти параметры используются при создании динамических объектов, если TTL не указан явно или задан меньше допустимого минимального значения.

См. подробнее об особенностях реализации функциональности динамических объектов в Эллес в разделе «Настройка динамических объектов».

Создание динамического объекта

Формат вызова:

samba-tool dynamicobject add computer|contact|group|ou|user <name> [options]

В качестве обязательного аргумента ожидается имя создаваемого объекта в соответствующем формате (sAMAccountName, OU=<ouname> и т. д.).

При необходимости может быть задано время жизни объекта (с помощью параметра --ttl).

Вызов подкоманды аналогичен вызову подкоманды для создания объекта соответствующего класса с флагом --dynamicobject.

Параметры

Общие параметры вызова:

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

  • --ttl — время жизни создаваемого динамического объекта в секундах (значение по умолчанию определяется параметром DynamicObjectDefaultTTL и составляет 86400 секунды, 24 часа).

Параметры вызова при создании компьютера:

  • --computerou=COMPUTEROU — имя (DN) альтернативного расположения (без или с domainDN), в котором будет создан компьютер (вместо используемого по умолчанию CN=Computers);

  • --description=DESCRIPTION — информация о компьютере;

  • --prepare-oldjoin — опция указывает, что компьютер создается с целью его последующего ввода в домен;

  • --ip-address=IP_ADDRESS_LIST — IPv4-адрес для A-записи компьютера либо IPv6-адрес для AAAA-записи компьютера;

  • --service-principal-name=SERVICE_PRINCIPAL_NAME_LIST — значение атрибута Service Principal Name (SPN) для компьютера.

Параметры вызова при создании контакта:

  • --ou=OU — имя (DN) альтернативного расположения (без или с domainDN), в котором будет создан контакт (по умолчанию контакт создается на уровне домена);

  • --surname=SURNAME — фамилия контакта;

  • --given-name=GIVEN_NAME — имя контакта;

  • --initials=INITIALS — инициалы контакта;

  • --display-name=DISPLAY_NAME — отображаемое имя контакта;

  • --job-title=JOB_TITLE — должность контакта;

  • --department=DEPARTMENT — подразделение, к которому относится контакта;

  • --company=COMPANY — компания, в которой работает контакт;

  • --description=DESCRIPTION — информация о контакте;

  • --mail-address=MAIL_ADDRESS — адрес электронной почты контакта;

  • --internet-address=INTERNET_ADDRESS — URL домашней страницы контакта;

  • --telephone-number=TELEPHONE_NUMBER — номер телефона контакта;

  • --physical-delivery-office=PHYSICAL_DELIVERY_OFFICE — физический адрес офиса контакта.

Параметры вызова при создании подразделения:

  • --description=DESCRIPTION — любая дополнительная информация о подразделении в текстовом формате.

Параметры вызова при создании пользователя:

  • --must-change-at-next-login — включить принудительную смену пароля при первом входе в домен;

  • --random-password — сформировать случайный пароль;

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

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

  • --smartcard-required — требовать наличие смарт-карты при входе в интерактивном режиме;

  • --disable-preauth — отключить предварительную аутентификацию Kerberos;

  • --use-username-as-cn — включить принудительное использование имени пользователя в качестве общего имени (CN);

  • --userou=USEROU — имя (DN) альтернативного расположения (без domainDN), в котором будет создан пользователь (вместо используемого по умолчанию CN=Users);

  • --surname=SURNAME — фамилия пользователя;

  • --given-name=GIVEN_NAME — имя пользователя;

  • --initials=INITIALS — инициалы пользователя;

  • --profile-path=PROFILE_PATH – путь к профилю пользователя;

  • --script-path=SCRIPT_PATH — путь к скрипту, задающему сценарий входа в систему для пользователя;

  • --home-drive=HOME_DRIVE — буква диска домашнего каталога для пользователя;

  • --home-directory=HOME_DIRECTORY — домашний каталог пользователя;

  • --job-title=JOB_TITLE — должность пользователя;

  • --department=DEPARTMENT — подразделение, к которому относится пользователь;

  • --company=COMPANY — компания, в которой работает пользователь;

  • --description=DESCRIPTION — информация о пользователе;

  • --mail-address=MAIL_ADDRESS — адрес электронной почты пользователя;

  • --internet-address=INTERNET_ADDRESS — URL домашней страницы пользователя;

  • --telephone-number=TELEPHONE_NUMBER — номер телефона пользователя;

  • --physical-delivery-office=PHYSICAL_DELIVERY_OFFICE — физический адрес офиса пользователя;

  • --rfc2307-from-nss — включение копирования атрибутов пользователя Unix из диспетчера службы имен (NSS); значение параметра переопределяется в случае явного задания числового идентификатора пользователя (UID), числового идентификатора основной группы пользователя (GID), информации о пользователе (GECOS) или интерпретатора команд, который должен запускаться при входе пользователя в систему (shell);

  • --nis-domain=NIS_DOMAIN — домен службы сетевой информации (NIS) для пользователя (Unix/RFC 2307);

  • --unix-home=UNIX_HOME — домашний каталог для пользователя (Unix/RFC 2307);

  • --uid=UID — имя пользователя (Unix/RFC 2307);

  • --uid-number=UID_NUMBER — уникальный числовой идентификатор пользователя (Unix/RFC 2307);

  • --gid-number=GID_NUMBER — числовой идентификатор основной группы пользователя (Unix/RFC 2307);

  • --gecos=GECOS — информация о пользователе в поле GECOS (Unix/RFC 2307);

  • --login-shell=LOGIN_SHELL — оболочка (shell), которая должна запускаться при входе в систему пользователя (Unix/RFC 2307).

Параметры вызова при создании группы:

  • --groupou=GROUPOU — альтернативное расположение (без domainDN) по умолчанию для CN=Users; будет использоваться по умолчанию при создании новых учетных записей пользователей;

  • --group-scope=GROUP_SCOPE — область действия; возможные значения: Domain | Global | Universal;

  • --group-type=GROUP_TYPE — тип группы; возможные значения: Security |Distribution;

  • --description=DESCRIPTION — описание группы;

  • --mail-address=MAIL_ADDRESS — адрес электронной почты группы;

  • --notes=NOTES — дополнительная информация о группе;

  • --gid-number=GID_NUMBER — числовой идентификатор группы Unix/RFC 2307;

  • --nis-domain=NIS_DOMAIN — домен NIS;

  • --special — параметр может использоваться для создания группы безопасности с именем Protected Users.

Примеры

Пример создания динамического объекта класса «подразделение» с указанием времени жизни (TTL):

samba-tool dynamicobject add ou OU=ou1 \
    --ttl=172800
Added ou 'OU=ou1,DC=elles,DC=inno,DC=tech'

Пример создания динамического объекта класса «компьютер» с указанием времени жизни (TTL) и подразделения:

samba-tool dynamicobject add computer Computer1 \
    --ttl=172800 \
    --computerou=OU=ou1
Computer 'Computer1' added successfully

Пример создания динамического объекта класса «контакт» с указанием времени жизни (TTL) и подразделения:

samba-tool dynamicobject add contact Contact1  \
    --ttl=172800 \
    --ou=OU=ou1
Contact 'Contact1' added successfully

Пример создания динамического объекта класса «пользователь» с указанием времени жизни (TTL) и подразделения:

samba-tool dynamicobject add user User1  \
    --ttl=172800 \
    --userou=OU=ou1
User 'User1' added successfully

Пример создания динамического объекта класса «группа» с указанием времени жизни (TTL) и подразделения:

samba-tool dynamicobject add group Group1  \
    --ttl=172800 \
    --groupou=OU=ou1
Added group Group1

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

Формат вызова:

samba-tool dynamicobject list [options]

Подкоманда отображает список динамических объектов в каталоге или в определенной его части (при указании DN с помощью параметра --b|--base-dn).

Параметры

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

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

  • -b BASE_DN|--base-dn=BASE_DN — DN-имя контейнера, с которого необходимо начинать поиск динамических объектов для отображения;

  • --full-dn — возвращать в списке полные значения DN, включая базовую часть.

Примеры

Пример отображения полного списка динамических объектов:

samba-tool dynamicobject list
CN=User3,CN=Users,DC=elles,DC=inno,DC=tech
CN=User1,OU=ou1,DC=elles,DC=inno,DC=tech
CN=User2,OU=ou2,DC=elles,DC=inno,DC=tech
CN=Group1,OU=ou1,DC=elles,DC=inno,DC=tech
CN=Group2,OU=ou2,DC=elles,DC=inno,DC=tech
CN=Contact1,OU=ou1,DC=elles,DC=inno,DC=tech
CN=Contact2,OU=ou2,DC=elles,DC=inno,DC=tech
CN=Computer1,OU=ou1,DC=elles,DC=inno,DC=tech
CN=Computer2,OU=ou2,DC=elles,DC=inno,DC=tech
CN=Contact3,DC=elles,DC=inno,DC=tech
OU=ou1,DC=elles,DC=inno,DC=tech
OU=ou2,DC=elles,DC=inno,DC=tech

Пример отображения полного списка динамических объектов с указанием DN:

samba-tool dynamicobject list \
    --base-dn=OU=ou2
CN=User2,OU=ou2,DC=elles,DC=inno,DC=tech
CN=Group2,OU=ou2,DC=elles,DC=inno,DC=tech
CN=Contact2,OU=ou2,DC=elles,DC=inno,DC=tech
CN=Computer2,OU=ou2,DC=elles,DC=inno,DC=tech
OU=ou2,DC=elles,DC=inno,DC=tech

Получение информации о динамическом объекте

Формат вызова:

samba-tool dynamicobject show <dynamic_object_DN> [options]

В качестве обязательного аргумента ожидается DN динамического объекта.

Подкоманда отображает список атрибутов указанного динамического объекта.

В параметре --attributes может передаваться список атрибутов (через запятую), значения которых требуется отобразить. Если параметр --attributes не задан или задан в формате --attributes=*, выводятся все доступные атрибуты.

В дополнение к доступным атрибутам могут выводиться скрытые атрибуты. Для этого достаточно явно указать их имя в параметре --attributes наряду с *.

Если запрошенный в параметре --attributes атрибут отсутствует у указанного объекта, он опускается в выводе.

Параметры

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

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

  • --attributes=ATTRIBUTE1..,ATTRIBUTEN — список атрибутов (через запятую), которые требуется отобразить.

Примеры

Пример отображения атрибутов динамического объекта класса «пользователь»:

samba-tool dynamicobject show CN=User1,OU=ou1,DC=elles,DC=inno,DC=tech
dn: CN=User1,OU=ou1,DC=elles,DC=inno,DC=tech
objectClass: top
objectClass: dynamicObject
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: User14
instanceType: 4
whenCreated: 20260312141945.0Z
uSNCreated: 26683
name: User14
objectGUID: 9826b53c-632e-453f-a115-f05488482c56
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 0
lastLogoff: 0
lastLogon: 0
primaryGroupID: 513
objectSid: S-1-5-21-1159061634-2679507100-403793082-2116
accountExpires: 9223372036854775807
logonCount: 0
sAMAccountName: User1
sAMAccountType: 805306368
userPrincipalName: User1@elles.inno.tech
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech
msDS-Entry-Time-To-Die: 20260314141945.0Z
pwdLastSet: 134177987857088120
userAccountControl: 512
whenChanged: 20260312141950.0Z
uSNChanged: 26685
distinguishedName: CN=User1,OU=ou1,DC=elles,DC=inno,DC=tech
entryTTL: 170239

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

samba-tool dynamicobject show CN=User1,OU=ou1,DC=elles,DC=inno,DC=tech \
    --attributes=msDS-Entry-Time-To-Die,entryTTL
dn: CN=User1,OU=ou1,DC=elles,DC=inno,DC=tech
msDS-Entry-Time-To-Die: 20260314141945.0Z
entryTTL: 169820

Изменение атрибутов динамического объекта

Формат вызова:

samba-tool dynamicobject edit <dynamic_object_DN> [options]

В качестве обязательного аргумента ожидается DN динамического объекта.

В результате выполнения команды в системном текстовом редакторе или текстовом редакторе, переданном в качестве значения параметра --editor, открывается список атрибутов динамического объекта. Редактирование и сохранение внесенных изменений выполняется средствами текстового редактора.

Параметры

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

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

  • --editor=EDITOR — текстовый редактор, который следует использовать вместо редактора, заданного в операционной системе по умолчанию, либо вместо vi, если в операционной системе не задан редактор по умолчанию.

Примеры

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

samba-tool dynamicobject edit CN=User1,OU=ou1,DC=elles,DC=inno,DC=tech

Пример запуска редактирования атрибутов динамического объекта с указанием редактора:

samba-tool dynamicobject edit CN=User1,OU=ou1,DC=elles,DC=inno,DC=tech \
    --editor=nano

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

Формат вызова:

samba-tool dynamicobject cleanup [options]

Подкоманда запускает процесс очистки динамических объектов с истекшим сроком жизни (TTL).

Для запуска подкоманды требуются права суперпользователя (root/sudo).

Параметры

Доступны стандартные параметры samba-tool. Дополнительные параметры отсутствуют.

Примеры

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

sudo samba-tool dynamicobject cleanup
Dynamic objects cleanup successfully performed, 10 objects deleted, 5 objects prolonged

Получение и изменение времени жизни динамических объектов в лесу по умолчанию (DynamicObjectDefaultTTL)

Формат вызова:

samba-tool dynamicobject ttl defaultttl [new_default_ttl] [options]

В качестве аргумента ожидается новое значение для атрибута DynamicObjectDefaultTTL в секундах. Допустимый диапазон значений — от 1 до 31557600 (1 год).

Если новое значение не передается, подкоманда возвращает текущее.

По умолчанию значение DynamicObjectDefaultTTL составляет 86400 секунды.

Если при вызове передается дополнительный параметр -f|--force, операция выполняется без подтверждения.

Параметры

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

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

  • -f|--force — не запрашивать подтверждение операции.

Примеры

Пример получения текущего значения параметра DynamicObjectDefaultTTL в лесу:

samba-tool dynamicobject ttl defaultttl
Forest DynamicObjectDefaultTTL: 86400

Пример изменения значения параметра DynamicObjectDefaultTTL в лесу с подтверждением:

samba-tool dynamicobject ttl defaultttl 172800
Do you really want to set DynamicObjectDefaultTTL to 172800 [y/N] y

Пример изменения значения параметра DynamicObjectDefaultTTL в лесу без подтверждения:

samba-tool dynamicobject ttl defaultttl 172800 --force

Получение и изменение минимального времени жизни динамических объектов в лесу (DynamicObjectMinTTL)

Формат вызова:

samba-tool dynamicobject ttl minttl [new_min_ttl] [options]

В качестве аргумента ожидается новое значение для атрибута DynamicObjectMinTTL в секундах. Допустимый диапазон значений — от 1 до 31557600 (1 год).

Если новое значение не передается, подкоманда возвращает текущее.

По умолчанию значение DynamicObjectMinTTL составляет 900 секунд.

Если при вызове передается дополнительный параметр -f|--force, операция выполняется без подтверждения.

Параметры

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

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

  • -f|--force — не запрашивать подтверждение операции.

Примеры

Пример получения текущего значения параметра DynamicObjectMinTTL в лесу:

samba-tool dynamicobject ttl minttl
Forest DynamicObjectMinTTL: 900

Пример изменения значения параметра DynamicObjectMinTTL в лесу с подтверждением:

samba-tool dynamicobject ttl minttl 1800
Do you really want to set DynamicObjectMinTTL to 1800 [y/N] y

Пример изменения значения параметра DynamicObjectMinTTL в лесу без подтверждения:

samba-tool dynamicobject ttl minttl 1800 --force