Администрирование динамических объектов
Для администрирования динамических объектов с помощью утилиты 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;См. подробнее в разделе «Настройка предварительной аутентификации 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). |
Получение и изменение времени жизни динамических объектов в лесу по умолчанию (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