Администрирование пользователей и групп

Для администрирования пользователей и групп в домене Samba AD с помощью утилиты samba-tool используются группы подкоманд user и group.

При выполнении операций с помощью подкоманд user и group всегда указывается набор ключей -H (URI LDAP-сервера) и --use-kerberos=required. По умолчанию в качестве значения ключа -H передается текущий хост в формате ldap://<имя хоста>.

Управление пользователями

Подкоманда samba-tool user позволяет выполнять следующие операции:

Добавление пользователя

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

samba-tool user add <username> [<password>] [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Оно должно быть уникальным.

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

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

К учетной записи могут быть добавлены атрибуты Unix (в соответствии с RFC 2307). На отдельно взятой локальной машине поставщиком данных атрибутов является диспетчер службы имен (NSS). Явно заданные значения переопределяют значения, полученные от NSS. Для использования этих атрибутов для сопоставления UID/GID в конфигурации (smb.conf) должен быть задан параметр idmap_ldp:use rfc2307 = Yes.

Для обеспечения обратной совместимости также поддерживается команда samba-tool user create <username> [<password>] [options], которая является синонимом команды samba-tool user add.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

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

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

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

  • --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).

Примеры

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

samba-tool user add User1 passw0rd --given-name=Ivan --surname=Ivanov --must-change-at-next-login -H ldap://samba.samdom.example.com -U administrator

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

samba-tool user add User2 passw2rd --given-name=Anton --surname=Antonov --must-change-at-next-login

Пример добавления нового пользователя в подразделение OrgUnit:

samba-tool user add User3 passw3rd --userou='OU=OrgUnit'

Пример добавления нового пользователя с получением значений Unix-атрибутов UID, GID и shell из локального диспетчера сетевой службы (NSS) и заданием в качестве GEGOS значения 'some text':

samba-tool user add User4 passw4rd --rfc2307-from-nss --gecos 'some text'

Пример добавления новой учетной записи в домен с поддержкой расширенных атрибутов в соответствии с RFC 2307 (при задании --nis-domain остальные четыре параметра являются обязательными):

samba-tool user add User5 passw5rd --nis-domain=samdom --unix-home=/home/User5 --uid-number=10005 --login-shell=/bin/bash --gid-number=10000

Добавление атрибутов Unix/RFC 2307 для пользователя

Для добавления учетной записи в домене AD атрибутов Unix в соответствии с RFC 2307 используется следующий формат вызова:

samba-tool user addunixattrs <username> <uid-number> [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Также должен быть передан уникальный числовой идентификатор пользователя в качестве значения для атрибута uidNumber.

Для использования этих атрибутов для сопоставления UID/GID в конфигурации (smb.conf) должен быть задан параметр idmap_ldp:use rfc2307 = Yes.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

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

    Если параметр не передается, в качестве gitNumber для пользователя устанавливается значение, заданное для группы Domain Users.

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

    Если параметр не передается, в качестве домашнего каталога для пользователя устанавливается каталог /home/DOMAIN/username.

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

    Если параметр не передается, в качестве оболочки для пользователя устанавливается значение /bin/sh.

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

    Если значение не передается, в качестве значения для поля GECOS используется общее имя пользователя (CN).

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

Примеры

Пример добавления отдельного атрибута в соответствии с RFC 2307 учетной записи в домене:

samba-tool user addunixattrs User1 10001

В результате выполнения команды пользователю будет присвоен Unix ID 10001 (при условии, что он не занят). В качестве gidNumber будет установлено значение, заданное для группы Domain Users.

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

samba-tool user addunixattrs User2 10002 --gid-number=10001 --unix-home=/home/User2

Пример добавления списка атрибутов, включая значение для поля GECOS, в соответствии с RFC 2307 учетной записи в домене:

samba-tool user addunixattrs User3 10003 --gid-number=10001 --login-shell=/bin/false --gecos='User3 test'

Изменение атрибутов пользователя

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

samba-tool user edit <username> [options]

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

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

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

Примеры

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

samba-tool user edit User1 -H ldap://samba.samdom.example.com -U administrator

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

samba-tool user edit User2

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

samba-tool user edit User3 --editor=nano

Удаление пользователя

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

samba-tool user delete <username> [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

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

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>.

Примеры

Пример удаления в домене пользователя с указанием удаленного LDAP-сервера (значение параметра -H):

samba-tool user delete User1 -H ldap://samba.samdom.example.com -U administrator

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

samba-tool user delete User2

Отключение пользователя

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

samba-tool user disable (<username>|--filter <filter>) [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Также для задания имени пользователя может использоваться параметр --filter.

После выполнения команды пользователь не сможет входить на рабочие станции или серверы в домене с использованием отключенной учетной записи.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --filter=FILTER — LDAP-фильтр для поиска объектов в AD.

Примеры

Пример отключения учетной записи с использованием LDAP-фильтра:

samba-tool user disable --filter=samaccountname=User

Включение пользователя

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

samba-tool user enable (<username>|--filter <filter>) [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Также для задания имени пользователя может использоваться параметр --filter.

Учетная запись может быть отключена, например, по следующим причинам:

  • достигнуто максимальное количество попыток входа, установленное для учетной записи политикой;

  • учетная запись отключена администратором;

  • истек период действия учетной записи.

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

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --filter=FILTER — LDAP-фильтр для поиска объектов в AD.

Примеры

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

samba-tool user enable User1 --URL=ldap://samba.samdom.example.com

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

samba-tool user enable User2

Пример включения учетной записи в домене на локальном сервере с указанием имени пользователя с помощью параметра --filter=samaccountname:

samba-tool user enable --filter=samaccountname=User3

Получение списка всех пользователей

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

samba-tool user list [options]

По умолчанию выводится список имен учетных записей SAM (sAMAccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --full-dn — выводить в списке вместо имен учетных записей SAM (sAMAccountName) уникальные составные имена (Distinguished Name, DN);

  • -b BASE_DN|--base-dn=BASE_DN — выводить в списке только пользователей с указанным базовым уникальным именем (DN);

  • --hide-expired — не выводить в списке учетные записи с истекшим периодом действия;

  • --hide-disabled — не выводить в списке отключенные учетные записи.

Примеры

Пример получения списка имен учетных записей SAM:

samba-tool user list

Пример получения списка уникальных составных имен пользователей (DN):

samba-tool user list --full-dn

Задание основной группы для пользователя

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

samba-tool user setprimarygroup <username> <primarygroupname> [options]

Переданные в команде значения <username> и <primarygroupname> интерпретируется как имя учетной записи и имя группы SAM (значение атрибута sAMaccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>.

Примеры

Пример задания основной группы для учетной записи на удаленном LDAP-сервере:

samba-tool user setprimarygroup User1 newPrimaryGroup ---URL=ldap://samba.samdom.example.com -U administrator

Получение списка групп пользователя

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

samba-tool user getgroups <username> [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --full-dn — выводить в списке вместо имен групп SAM (sAMAccountName) их полные уникальные имена (Distinguished Name, DN).

Примеры

Пример получения списка уникальных составных имен (DN) групп пользователя:

samba-tool user getgroups User1 --full-dn

Получение атрибутов пользователя

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

samba-tool user show <username> [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

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

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

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

Для атрибутов, содержащих в качестве своего значения дату и/или время, может дополнительно указываться формат вывода: --attributes=attributeName;format=formatSpecifier. Доступны следующие форматы:

  • GeneralizedTime — синтаксис общего времени в формате ГГГГММДДЧЧммСС[.|,доли][(+|-ЧЧмм)|Z] (например: 20230529113259.0Z);

  • UnixTime — Unix-время (например: 1685444624);

  • TimeSpec — системное время с точностью до наносекунд (например: 168544462.267546892).

Атрибуты со значением NTTIME, равным 0 и 9223372036854775807, интерпретируются как несуществующие.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --attributes=USER_ATTRS — список атрибутов (через запятую), которые требуется вывести; поддерживаются следующие виртуальные атрибуты: virtualGeneralizedTime, virtualUnixTime, virtualTimeSpec.

Примеры

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

samba-tool user show User1 -H ldap://samba.samdom.example.com - U administrator

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

samba-tool user show User2

Пример получения значений атрибутов objectSid и memberOf пользователя:

samba-tool user show User3 --attributes=objectSid,memberOf

Пример получения значения атрибута pwdLastSet пользователя в форматах времени GeneralizedTime и UnixTime:

samba-tool user show User4 --attributes='pwdLastSet;format=GeneralizedTime,pwdLastSet;format=UnixTime'

Перемещение пользователя в подразделение/контейнер

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

samba-tool user move <username> <new_parent_dn> [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Имя подразделения или контейнера может указываться в формате полного уникального составного имени (DN) или без компонента domainDN.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>.

Примеры

Пример перемещения пользователя в подразделение OrgUnit с указанием удаленного LDAP-сервера:

samba-tool user move User1 'OU=OrgUnit,DC=samdom,DC=example,DC=com' -H ldap://samba.samdom.example.com -U administrator

Пример перемещения пользователя обратно в контейнер CN=Users на локальном сервере:

samba-tool user move User1 CN=Users

Изменение пароля пользователя

Для изменения пароля текущей учетной записи (пользователя, прошедшего аутентификацию) в домене Samba AD используется следующий формат вызова:

samba-tool user password [options]

Параметры

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

  • --newpassword=NEWPASSWORD — новый пароль.

Примеры

Пример изменения пароля:

samba-tool user password --user=User1

Изменение имени пользователя и связанных атрибутов

Для изменения имени учетной записи пользователя в домене Samba AD и связанных с ним атрибутов (given-name, surname, initials) используется следующий формат вызова:

samba-tool user rename <username> [options]

Новое общее имя пользователя (CN) будет составлено путем комбинирования значений параметров given-name, initials и surname. При необходимости к инициалам будет автоматически добавлена точка ('.'). Используйте опцию --force-new-cn для задания нового значения CN вручную и опцию --reset-cn для отмены этого изменения.

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

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --surname=SURNAME — новое значение фамилии;

  • --given-name=GIVEN_NAME — новое значение имени;

  • --initials=INITIALS — новое значение инициалов;

  • --force-new-cn=NEW_CN — новое значение CN (RND) для использования вместо комбинации значений атрибутов given-name, initials и surname;

  • --reset-cn — использовать в качестве значения CN комбинацию значений атрибутов given-name, initials и surname; используйте данную опцию для отмены изменений, внесенных с помощью опции --force-new-cn;

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

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

  • --samaccountname=SAMACCOUNTNAME — новое значение для имени учетной записи SAM (значение атрибута sAMAccountName / имя для входа в систему);

  • --upn=UPN — новое значение для имени пользователя в формате адреса электронной почты.

Примеры

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

samba-tool user rename ivanivanov --surname='Petrov'

В результате выполнения команды будет автоматически обновлено значение CN пользователя на основе значений атрибутов given-name, initials и surname.

Пример изменения значения CN для пользователя с указанием удаленного LDAP-сервера:

samba-tool user rename ivanivanov --force-new-cn='Ivan Petrov (Sales)' --surname=Petrov -H ldap://samba.samdom.example.com -U administrator

Задание периода действия учетной записи пользователя

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

samba-tool user setexpiry (<username>|--filter <filter>) [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Также для задания имени пользователя может использоваться параметр --filter.

По истечении заданного периода учетная запись отключается; пользователь не может получать доступ к ресурсам домена. После этого администратор может восстановить доступ пользователя к ресурсам с помощью команды samba-tool user enable. При этом сохраняются связанные с учетной записью разрешения, права и членства.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --filter=FILTER — LDAP-фильтр для поиска объектов в AD;

  • --days=DAYS — продолжительность периода в днях;

  • --noexpiry — период действия неограничен.

Примеры

Пример задания 20-дневного периода действия (начиная с текущей даты) для учетной записи пользователя с указанием удаленного LDAP-сервера:

samba-tool user setexpiry User1 --days=20 --URL=ldap://samba.samdom.example.com --username=administrator

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

samba-tool user setexpiry User2 --noexpiry

Пример задания 20-дневного периода действия для учетной записи с указанием имени пользователя с помощью параметра --filter:

samba-tool user setexpiry --days=20 --filter=samaccountname=User3

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

samba-tool user setexpiry --noexpiry User4

Задание/сброс пароля пользователя

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

samba-tool user setpassword (<username>|--filter <filter>) [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Также для задания имени пользователя может использоваться параметр --filter.

Если пароль не передается в открытом виде в значении параметра --newpassword, пользователь получит запрос на ввод пароля в командной строке.

Для включения принудительной смены пароля при первом входе пользователя в домене может передаваться опция --must-change-at-next-login.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --filter=FILTER — LDAP-фильтр для поиска объектов в AD;

  • --newpassword=NEWPASSWORD — новый пароль;

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

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

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

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

Примеры

Пример задания пароля для пользователя с указанием удаленного LDAP-сервера:

samba-tool user setpassword User1 --newpassword=passw0rd --URL=ldap://samba.samdom.example.com -U administrator

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

samba-tool user setpassword User2 --newpassword=passw0rd --must-change-at-next-login

Пример сброса администратором пароля пользователя с указанием имени пользователя с помощью параметра --filter:

samba-tool user setpassword --filter=samaccountname=User3 --newpassword=passw0rd

Получение пароля пользователя

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

samba-tool user getpassword (<username>|--filter <filter>) [options]

Команда позволяет получить пароль, используемый для доступа к ресурсам домена пользователем или компьютером.

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Также для задания имени пользователя может использоваться параметр --filter.

Параметр --attributes принимает в качестве значения список атрибутов (через запятую), которые должны быть выведены или переданы скрипту, заданному в параметре --script. Если переданный атрибут отсутствует среди атрибутов запрашиваемого объекта, он пропускается. В параметре могут передаваться любые атрибуты, заданные в схеме каталога, а также следующие виртуальные атрибуты (для получения полного списка поддерживаемых виртуальных атрибутов используйте --help):

  • virtualClearTextUTF16 — незашифрованный текст в том виде, в каком он хранится в буфере Primary:CLEARTEXT (или Primary:SambaGPG с опцией --decrypt-samba-gpg) внутри атрибута supplementalCredentials; как правило, атрибут содержит валидное байтовое представление символов Unicode в UTF-16 LE, но также может содержать случайные байты, например, для учетных записей компьютеров;

  • virtualClearTextUTF8 — аналогично virtualClearTextUTF16, но с преобразованием в UTF-8 (только из валидного значения в UTF-16 LE);

  • virtualSSHA — аналогично virtualClearTextUTF8, но с вычислением контрольной суммы с использованием функции хеширования SHA-1 с солью; может использоваться для алгоритма SSHA в OpenLDAP;

  • virtualCryptSHA256 — аналогично virtualClearTextUTF8, но с вычислением контрольной суммы с использованием функции хеширования SHA256 с солью; может использоваться для алгоритма CRYPT в OpenLDAP;

    Также может быть указано количество циклов расчета хеша. Для этого к атрибуту добавляется дополнительный параметр ;rounds=x. Например, если задать значение атрибута virtualCryptSHA256;rounds=10000, будет выполнено 10000 циклов расчета хеша с использованием функции SHA256. Если для параметра round задано нечисловое значение, оно игнорируется.

    Расчет выполняется следующим образом:

    1. Если в Primary:userPassword существует значение с указанным количеством циклов, возвращается оно.

    2. Если существует значение Primary:CLEARTEXT или Primary:SambaGPG с ключом --decrypt-samba-gpg, рассчитывается хеш с указанным количеством циклов.

    3. Возвращается первое значение CryptSHA256 в Primary:userPassword.

  • virtualCryptSHA512 — аналогично virtualClearTextUTF8, но с вычислением контрольной суммы с использованием функции хеширования SHA512 с солью, начинающейся с $6$; может использоваться для алгоритма CRYPT в OpenLDAP;

    Также может быть указано количество циклов расчета хеша. Для этого к атрибуту добавляется дополнительный параметр ;rounds=x. Например, если задать значение атрибута virtualCryptSHA512;rounds=10000, будет выполнено 10000 циклов расчета хеша с использованием функции SHA512. Если для параметра round задано нечисловое значение, оно игнорируется.

    Расчет выполняется следующим образом:

    1. Если в Primary:userPassword существует значение с указанным количеством циклов, возвращается оно.

    2. Если существует значение Primary:CLEARTEXT или Primary:SambaGPG с ключом --decrypt-samba-gpg, рассчитывается хеш с указанным количеством циклов.

    3. Возвращается первое значение CryptSHA512 в Primary:userPassword.

  • virtualWDigestNN — отдельное значение хеша, хранящееся в Primary:WDigest, где NN — хеш-число в диапазоне от 01 до 29;

  • virtualKerberosSalt — строковая соль, используемая для вычисления ключей Kerberos на основе незашифрованного пароля в UTF-8;

  • virtualSambaGPG — незашифрованный текст в том виде, в каком он хранится в буфере Primary:SambaGPG внутри атрибута supplementalCredentials (см. описание опции password hash gpg key ids в файле smb.conf).

При задании опции --decrypt-samba-gpg выполняется дешифрование содержимого буфера Primary:SambaGPG. Перед использованием следует убедиться, что данная возможность доступна, с помощью опции --help (требуется пакет python-gpgme). Также может потребоваться задать переменную окружения GNUPGHOME. Если у ключа дешифрования есть парольная фраза, необходимо убедиться, что корректно задана переменная окружения GPG_AGENT_INFO и gpg-agent имеет доступ к парольной фразе.

Для атрибутов, содержащих в качестве своего значения дату и/или время, может дополнительно указываться формат вывода: --attributes=attributeName;format=formatSpecifier. Доступны следующие форматы:

  • GeneralizedTime — синтаксис общего времени в формате ГГГГММДДЧЧммСС[.|,доли][(+|-ЧЧмм)|Z] (например: 20230529113259.0Z);

  • UnixTime — Unix-время (например: 1685444624);

  • TimeSpec — системное время с точностью до наносекунд (например: 168544462.267546892).

Атрибуты со значением NTTIME, равным 0 или 9223372036854775807, интерпретируются как несуществующие.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --filter=FILTER — LDAP-фильтр для поиска объектов в AD;

  • --attributes=ATTRIBUTE_LIST — атрибуты, которые требуется вывести (через запятую); поддерживаются следующие виртуальные атрибуты: virtualClearTextUTF16, virtualClearTextUTF8, virtualCryptSHA256, virtualCryptSHA512, virtualKerberosSalt, virtualSSHA, virtualSambaGPG, virtualDigest01..29;

  • --decrypt-samba-gpg — дешифровать пароль SambaGPG.

Примеры

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

samba-tool user getpassword User1 --attributes=pwdLastSet,virtualClearTextUTF8

Пример получения пароля с указанием имени пользователя с помощью параметра --filter:

samba-tool user getpassword --filter=samaccountname=User2 --attributes=msDS-KeyVersionNumber,unicodePwd,virtualClearTextUTF16

Синхронизация паролей

Для синхронизации паролей учетных записей в домене Samba AD используется следующий формат вызова:

samba-tool user syncpasswords [--cache-ldb-initialize] [options]

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

Достаточно запустить команду на одном контроллере домена. Однако для успешного ее выполнения на всех контроллерах домена должна быть настроена опция password has gpg key ids.

Команда поддерживает три режима выполнения:

Инициализация кеша (Cache Initialization)

В первый раз команда должна выполняться с параметром, обеспечивающим инициализацию кеша: --cache-ldb-initialize.

Для корректной инициализации кеша требуется передать список атрибутов в параметре --attributes. Также доступны опции --decrypt-samba-gpg, --script, --filter и -H/--URL.

Параметр --attributes принимает в качестве значения список атрибутов (через запятую), которые должны быть выведены или переданы скрипту, заданному в параметре --script. Если переданный атрибут отсутствует среди атрибутов запрашиваемого объекта, он пропускается. В параметре могут передаваться любые атрибуты, заданные в схеме каталога, а также следующие виртуальные атрибуты (для получения полного списка поддерживаемых виртуальных атрибутов используйте --help):

  • virtualClearTextUTF16 — незашифрованный текст в том виде, в каком он хранится в буфере Primary:CLEARTEXT (или Primary:SambaGPG с опцией --decrypt-samba-gpg) внутри атрибута supplementalCredentials; как правило, атрибут содержит валидное байтовое представление символов Unicode в UTF-16 LE, но также может содержать случайные байты, например, для учетных записей компьютеров;

  • virtualClearTextUTF8 — аналогично virtualClearTextUTF16, но с преобразованием в UTF-8 (только из валидного значения в UTF-16 LE);

  • virtualSSHA — аналогично virtualClearTextUTF8, но с вычислением контрольной суммы с использованием функции хеширования SHA-1 с солью; может использоваться для алгоритма SSHA в OpenLDAP;

  • virtualCryptSHA256 — аналогично virtualClearTextUTF8, но с вычислением контрольной суммы с использованием функции хеширования SHA256 с солью; может использоваться для алгоритма CRYPT в OpenLDAP;

    Также может быть указано количество циклов расчета хеша. Для этого к атрибуту добавляется дополнительный параметр ;rounds=x. Например, если задать значение атрибута virtualCryptSHA256;rounds=10000, будет выполнено 10000 циклов расчета хеша с использованием функции SHA256. Если для параметра round задано нечисловое значение, оно игнорируется.

    Расчет выполняется следующим образом:

    1. Если в Primary:userPassword существует значение с указанным количеством циклов, возвращается оно.

    2. Если существует значение Primary:CLEARTEXT или Primary:SambaGPG с ключом --decrypt-samba-gpg, рассчитывается хеш с указанным количеством циклов.

    3. Возвращается первое значение CryptSHA256 в Primary:userPassword.

  • virtualCryptSHA512 — аналогично virtualClearTextUTF8, но с вычислением контрольной суммы с использованием функции хеширования SHA512 с солью, начинающейся с $6$; может использоваться для алгоритма CRYPT в OpenLDAP;

    Также может быть указано количество циклов расчета хеша. Для этого к атрибуту добавляется дополнительный параметр ;rounds=x. Например, если задать значение атрибута virtualCryptSHA512;rounds=10000, будет выполнено 10000 циклов расчета хеша с использованием функции SHA512. Если для параметра round задано нечисловое значение, оно игнорируется.

    Расчет выполняется следующим образом:

    1. Если в Primary:userPassword существует значение с указанным количеством циклов, возвращается оно.

    2. Если существует значение Primary:CLEARTEXT или Primary:SambaGPG с ключом --decrypt-samba-gpg, рассчитывается хеш с указанным количеством циклов.

    3. Возвращается первое значение CryptSHA512 в Primary:userPassword.

  • virtualWDigestNN — отдельное значение хеша, хранящееся в Primary:WDigest, где NN — хеш-число в диапазоне от 01 до 29;

  • virtualKerberosSalt — строковая соль, используемая для вычисления ключей Kerberos на основе незашифрованного пароля в UTF-8;

  • virtualSambaGPG — незашифрованный текст в том виде, в каком он хранится в буфере Primary:SambaGPG внутри атрибута supplementalCredentials (см. описание опции password hash gpg key ids в файле smb.conf).

При задании опции --decrypt-samba-gpg выполняется дешифрование содержимого буфера Primary:SambaGPG. Перед использованием следует убедиться, что данная возможность доступна, с помощью опции --help (требуется пакет python-gpgme). Также может потребоваться задать переменную окружения GNUPGHOME. Если у ключа дешифрования есть парольная фраза, необходимо убедиться, что корректно задана переменная окружения GPG_AGENT_INFO и gpg-agent имеет доступ к парольной фразе.

С помощью опции --script может быть задан пользовательский скрипт, который будет вызываться при каждом изменении атрибутов dirSyncAttributes (см. список атрибутов ниже). Скрипт вызывается без каких-либо аргументов. Он получает данные в формате LDIF ровно для одного объекта из stdin. В случае успешного завершения обработки объекта, скрипт должен вернуть ответ в виде одной строки, начинающейся со слов DONE-EXIT: и содержащей произвольное сообщение.

Следует учитывать, что скрипт может вызываться, в том числе, и в случаях, не связанных с изменением пароля. Например — при отключении учетной записи (изменение userAccountControl) или изменении sAMAccountName. В качестве уникального идентификатора учетной записи всегда возвращаются значения атрибутов objectGUID, isDeleted и isRecycled. Также может быть полезным запросить атрибуты, не связанные с паролем, включая, например, атрибуты objectSid, sAMAccountName, userPrincipalName, userAccountControl, pwdLastSet и msDS-KeyVersionNumber. В зависимости от особенностей конкретного объекта те или иные атрибуты могут отсутствовать либо быть недоступны.

Если опция --script не передается, данные в формате LDIF выводятся в stdout или в лог-файл.

По умолчанию при поиске по LDAP_SERVER_DIRSYNC_OID применяется следующий фильтр:

(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=512)(!(sAMAccountName=krbtg*))

Таким образом, в процессе мониторинга учитываются только обычные (non-krbtgt) учетные записи пользователей. Если требуется изменить данное поведение (например, чтобы выполнять синхронизацию также и для учетных записей компьютеров), следует задать соответствующее значение фильтра с помощью параметра --filter.

Запуск циклической синхронизации (Sync Loop Run)

В данном режиме, который используется по умолчанию, запускается бесконечный цикл ожидания связанных с паролями изменений в базе данных службы каталогов Active Directory. Для эффективного контроля изменений используются элементы LDAP_SERVER_DIRSYNC_OID и LDAP_SERVER_NOTIFICATION_OID.

В процессе мониторинга учитываются изменения значений следующих атрибутов (dirSyncAttributes) объектов: unicodePwd, dBCSPwd, supplementalCredentials, pwdLastSet, sAMAccountName, userPrincipalName, userAccountControl.

В случае обрыва соединения с LDAP-сервером процесс синхронизации возобновляется после восстановления соединения и обеспечивает обновление кеша в консервативном режиме (пошагово, при каждой успешной обработке изменения).

При возникновении ошибки в работе скрипта, заданного в параметре --script, процесс синхронизации прекращается. При этом кеш будет сохранять корректное состояние. Работа с ним будет возобновлена при следующем запуске команды в режиме Sync Loop Run.

С помощью опции --logfile может быть указан опциональный лог-файл (использование опции является обязательным при запуске в режиме --daemon), в котором будут сохраняться все выводимые командой данные. Лог-файл автоматически открывается, если fstat возвращает st_nlink == 0.

Опция --daemon позволяет запустить команду в фоновом режиме. Для остановки команды в этом случае используется стандартное сочетание клавиш CTRL+C.

При задании опции --no-wait команда будет пропускать шаг ожидания LDAP_SERVER_NOTIFICATION_OID и прекращать работу сразу после получения всех изменений по LDAP_SERVER_DIRSYNC_OID.

Остановка циклической синхронизации (Sync Loop Terminate)

Для остановки ранее запущенной команды циклической синхронизации (в том числе работающей в режиме демона) может использоваться опция --terminate. При ее использовании также требуется указать опцию --logfile.

Параметры

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

  • --cache-ldb-initialize — первоначальная инициализация кеша;

  • --cache-ldb=CACHE_LDB_PATH — адрес (URL) размещения файла кеша (user-syncpasswords-cache.ldb);

  • -H URL|--URL=URL — адрес LDB;

  • --filter=FILTER — LDAP-фильтр для поиска объектов в AD;

  • --attributes=ATTRIBUTE_LIST — атрибуты, которые требуется вывести (через запятую); поддерживаются следующие виртуальные атрибуты: virtualClearTextUTF16, virtualClearTextUTF8, virtualCryptSHA256, virtualCryptSHA512, virtualKerberosSalt, virtualSSHA, virtualSambaGPG, virtualDigest01..29;

  • --decrypt-samba-gpg — дешифровать пароль SambaGPG;

  • --script=/path/to/syncpasswords.script — скрипт, который должен вызываться при каждом изменении пароля;

  • --no-wait — пропускать шаг ожидания изменений;

  • --logfile=/path/to/syncpasswords.log — лог-файл (параметр является обязательным при запуске команды в режиме --daemon);

  • --daemon — перейти в режим демона после первоначальной настройки;

  • --terminate — послать сигнал SIGTERM работающему процессу (демону).

Примеры

Пример последовательности команд для инициализации и запуска процесса синхронизации:

samba-tool user syncpasswords --cache-ldb-initialize --attributes=virtualClearTextUTF8

samba-tool user syncpasswords

Пример последовательности команд для инициализации, запуска и остановки процесса синхронизации:

samba-tool user syncpasswords --cache-ldb-initialize \
    --attributes=objectGUID,objectSID,sAMAccountName,\
    userPrincipalName,userAccountControl,pwdLastSet,\
    msDS-KeyVersionNumber,virtualCryptSHA512 \
    --script=/path/to/my-custom-syncpasswords-script.py

samba-tool user syncpasswords --daemon \
    --logfile=/var/log/samba/user-syncpasswords.log

samba-tool user syncpasswords --terminate \
    --logfile=/var/log/samba/user-syncpasswords.log

Разблокировка пользователя

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

samba-tool user unlock (<username>|--filter <filter>) [options]

Переданное в команде значение <username> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Также для задания имени пользователя может использоваться параметр --filter.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --filter=FILTER — LDAP-фильтр для поиска объектов в AD.

Примеры

Пример разблокировки учетной записи с указанием удаленного LDAP-сервера:

samba-tool user unlock User1 -H ldap://samba.samdom.example.com -U administrator

Управление группами

Подкоманда samba-tool group позволяет выполнять следующие операции:

Добавление группы

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

samba-tool group add <groupname> [options]

Переданное в команде значение <groupname> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Оно должно быть уникальным.

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

Также группы могут использоваться для создания списков рассылки (группы рассылки). Для этого при вызове команды должна быть передана опция --group-type=Distribution.

В доменах группы располагаются в подразделениях (OU). Область действия (scope) группы определяет место группы в дереве доменов или лесу.

При создании группы с помощью команды samba-tool group add могут быть заданы ее расположение (OU), тип (группа безопасности или группа рассылки) и область действия.

Поддерживается работа с группой безопасности «Защищенные пользователи». Для ее создания необходимо добавить группу с именем Protected Users с указанием опции --special.

Группа «Защищенные пользователи» доступна только при функциональном уровне домена Windows Server 2012 R2.

В данную группу должны включаться только учетные записи пользователей.

После добавления в группу в отношении учетной записи начинают действовать следующие ограничения:

  • недоступна аутентификация по протоколу NTLM;

  • пользователю не выдаются и от пользователя не принимаются TGT-билеты Kerberos с использованием алгоритма шифрования RC4 (используется алгоритм AES);

  • максимальный период действия TGT-билета — 4 часа;

  • недоступно неограниченное и ограниченное делегирование Kerberos.

Для обеспечения обратной совместимости также поддерживается команда samba-tool group create <groupname> [<password>] [options], которая является синонимом команды samba-tool group add.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --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.

Примеры

Пример добавления новой группы в контейнер Users с указанием удаленного LDAP-сервера:

samba-tool group add Group1 -H ldap://samba.samdom.example.com --description='Simple group'

Пример добавления новой группы рассылки на локальном сервере:

samba-tool group add Group2 --group-type=Distribution

Пример добавления новой группы в соответствии с RFC 2307 в домен NIS samdom с GID 12345:

samba-tool group add Group3 --nis-domain=samdom --gid-number=12345

Пример добавления группы безопасности «Защищенные пользователи» с указанием удаленного LDAP-сервера:

samba-tool group add 'Protected Users' --special -H ldap://samba.samdom.example.com -U administrator

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

samba-tool group add 'Protected Users' --special

Добавление атрибутов Unix/RFC 2307 для группы

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

samba-tool group addunixattrs <groupname> <gidnumber> [options]

Переданное в команде значение <groupname> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Для использования этих атрибутов для сопоставления UID/GID в конфигурации (smb.conf) должен быть задан параметр idmap_ldp:use rfc2307 = Yes.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>.

Примеры

Пример добавления атрибута GID для группы:

samba-tool group addunixattrs Group1 10000

В результате выполнения команды группе Group1 будет присвоен Unix ID 10000 при условии, что он не занят.

Изменение атрибутов группы

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

samba-tool group edit <groupname> [options]

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

Переданное в команде значение <groupname> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

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

Примеры

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

samba-tool group edit Group1 -H ldap://samba.samdom.example.com -U administrator

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

samba-tool group edit Group2

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

samba-tool group edit Group3 --editor=nano

Удаление группы

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

samba-tool group delete <groupname> [options]

Переданное в команде значение <groupname> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Операция удаления является необратимой.

При удалении группы также удаляются все связанные с нею разрешения и права, а также унаследованные от нее разрешения и права участников.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>.

Примеры

Пример удаления в домене группы с указанием удаленного LDAP-сервера:

samba-tool group delete Group1 -H ldap://samba.samdom.example.com -U administrator

Пример удаления в домене группы на локальном сервере:

samba-tool group delete Group2

Перемещение группы

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

group move <groupname> <new_parent_dn> [options]

Переданное в команде значение <groupname> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Имя подразделения (OU) или контейнера может указываться в формате полного уникального имени (DN) либо без части domainDN.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>.

Примеры

Пример перемещения группы в подразделение OrgUnit с указанием удаленного LDAP-сервера:

samba-tool group move Group1 'OU=OrgUnit,DC=samdom,DC=example,DC=com` -H ldap://samba.samdom.example.com -U administrator

Пример перемещения группы назад в контейнер CN=Users на локальном сервере:

samba-tool group move Group1 CN=Users

Изменение имени группы и связанных атрибутов

Для изменения имени группы в домене Samba AD и связанных с нею атрибутов (mail-address, samaccountname) используется следующий формат вызова:

samba-tool group rename <groupname> [options]

В результате выполнения операции будет автоматически изменено общее имя группы (CN). Используйте опцию --force-new-cn для задания нового значения CN вручную и опцию --reset-cn для отмены этого изменения.

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

Переданное в команде значение <groupname> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

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

  • --samaccountname=SAMACCOUNTNAME — новое значение имени (значение атрибута sAMAccountName / имя, используемое для входа);

  • --force-new-cn=NEW_CN — новое значение CN (RND) для использования вместо sAMAccountName;

  • --reset-cn — использовать в качестве значения CN имя sAMAccountName; используйте данную опцию для сброса изменений, внесенных с помощью опции --force-new-cn.

Примеры

Пример изменения имени группы:

samba-tool group rename employees --samaccountname=staff

В результате выполнения операции значения sAMAccountName и CN (если текущее значение CN также равно значению sAMAccountName) группы будут заменены значением staff.

Пример изменения адреса электронной почты группы с указанием удаленного LDAP-сервера:

samba-tool group rename employees --mail-address='staff@company.com' -H ldap://samba.samdom.example.com -U administrator

Получение списка всех групп

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

samba-tool group list [options]

По умолчанию выводится список имен учетных записей SAM (sAMAccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --full-dn — выводить в списке вместо имен учетных записей SAM (sAMAccountName) уникальные имена (Distinguished Name, DN);

  • -b BASE_DN|--base-dn=BASE_DN — выводить в списке только группы с указанным базовым уникальным именем (DN).

Примеры

Пример получения списка имен учетных записей SAM (sAMAccountName):

samba-tool group list

Пример получения списка уникальных составных имен групп (DN):

samba-tool group list --full-dn

Получение списка участников группы

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

samba-tool group listmembers <groupname> [options]

При вызове команды может указываться только одна группа.

Переданное в команде значение <groupname> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

По умолчанию в результате выполнения команды выводится список имен учетных записей SAM (sAMAccountNames). При отсутствии sAMAccountName выводятся общие имена (CN).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --full-dn — выводить в списке вместо имен учетных записей SAM (sAMAccountName) уникальные имена (Distinguished Name, DN);

  • --hide-expired — не выводить в списке учетные записи с истекшим периодом действия;

  • --hide-disabled — не выводить в списке отключенные учетные записи.

Примеры

Пример вывода списка участников группы с указанием удаленного LDAP-сервера:

samba-tool group listmembers "Domain Users" -H ldap://samba.samdom.example.com -U administrator

Добавление в группу участников

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

samba-tool group addmembers <groupname> (<listofmembers>|--member-dn=<member-dn>) [options]

Переданное в команде значение <groupname> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

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

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

В качестве имен участников должны указываться имена учетных записей SAM (sAMAaccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --member-dn=MEMBER_DN — уникальное составное имя (DN) добавляемого в группу нового участника; значение опции --object-types игнорируется;

  • --object-types=OBJECT_TYPES — список типов объектов (через запятую); указанные типы используются в качестве фильтра при выполнении поиска для указанных в команде участников; возможные значения: user, group, computer, serviceaccount, contact, all; значение по умолчанию — user,group,computer;

  • --member-base=MEMBER_BASE_DN — базовое уникальное имя (DN) для поиска участников группы; значение по умолчанию — уникальное имя (DN) домена.

Примеры

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

samba-tool group addmembers supergroup Group1,Group2,User1 -H ldap://samba.samdom.example.com -U administrator

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

samba-tool group addmembers supergroup User2

Удаление участников из группы

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

samba-tool group removemembers <groupname> (<listofmembers>|--member-dn=<member-dn>) [options]

Переданное в команде значение <groupname> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Команда позволяет удалить из группы одного или нескольких участников (через запятую). В качестве участника группы может выступать учетная запись пользователя, учетная запись компьютера или другая группа, существующая в домене.

При удалении из группы участник теряет все унаследованные от нее разрешения и права.

В качестве имен участников должны указываться имена учетных записей SAM (sAMAaccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

  • --member-dn=MEMBER_DN — уникальное составное имя (DN) удаляемого из группы участника; значение опции --object-types игнорируется;

  • --object-types=OBJECT_TYPES — список типов объектов (через запятую); указанные типы используются в качестве фильтра при выполнении поиска для указанных в команде участников; возможные значения: user, group, computer, serviceaccount, contact, all; значение по умолчанию — user,group,computer;

  • --member-base=MEMBER_BASE_DN — базовое уникальное имя (DN) для поиска участников группы; значение по умолчанию — уникальное имя (DN) домена.

Примеры

Пример удаления из группы входящей в ее состав другой группы с указанием удаленного LDAP-сервера:

samba-tool group removemembers supergroup Group1 -H ldap://samba.samdom.example.com -U administrator

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

samba-tool group removemembers supergroup User1

Получение атрибутов группы

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

samba-tool group show <groupname> [options]

Переданное в команде значение <groupname> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName).

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>;

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

Примеры

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

samba-tool group show Group1 -H ldap://samba.samdom.example.com -U administrator

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

samba-tool group show Group2 --attributes=member,objectGUID

Получение статистики по группам и участникам групп

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

samba-tool group stats [options]

В результате выполнения команды выводятся следующие сведения:

  • общее количество групп;

  • общее количество участников (без учета вложенности);

  • среднее количество участников в группе;

  • максимальное количество участников в группе;

  • медианное количество участников в группе;

  • распределение участников по группам с точки зрения количественного состава.

Параметры

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

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URI текущего хоста в формате ldap://<имя хоста>.

Примеры

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

samba-tool group stats