Product SiteDocumentation Site

37.2. С помощью утилиты samba-tool

Для управления пользователями и группами в Альт Домен можно использовать группы подкоманд user и group утилиты samba-tool.

Примечание

Для выполнения команды на удаленном компьютере можно использовать опцию -H или --URL= с указанием URI LDAP-сервера. Например:
# samba-tool user add domainuser Qwerty1 -H ldap://<DC> -Uadministrator
По умолчанию в качестве значения опции -H передается текущий узел в формате ldap://<имя узла>.

Таблица 37.1. Команды samba-tool для управления пользователями домена

Команда
Описание
Примечание
user add <имя пользователя> [<пароль>] [опции]
Создать нового пользователя
Переданное в команде значение <имя пользователя> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Оно должно быть уникальным.
Некоторые опции:
  • --surname — фамилия пользователя;
  • --given-name — имя пользователя;
  • --initials — инициалы;
  • --must-change-at-next-login — пользователь должен изменить пароль при первом входе в домен;
  • --random-password — сформировать пароль случайным образом;
  • --smartcard-required — требовать наличие смарт-карты при входе в интерактивном режиме;
  • --use-username-as-cn — включить принудительное использование имени пользователя в качестве общего имени (CN);
  • --userou — имя (DN) альтернативного расположения (без domainDN), в котором будет создан пользователь (вместо используемого по умолчанию CN=Users);
  • --company — компания пользователя;
  • --department — подразделение, к которому относится пользователь;
  • --description — информация о пользователе;
  • --mail-address — адрес электронной почты пользователя;
  • --rfc2307-from-nss — включить копирования атрибутов пользователя Unix из диспетчера службы имен (NSS); значение параметра переопределяется в случае явного задания числового идентификатора пользователя (UID), числового идентификатора основной группы пользователя (GID), информации о пользователе (GECOS) или интерпретатора команд, который должен запускаться при входе пользователя в систему (shell);
  • --nis-domain — домен службы сетевой информации (NIS) для пользователя (Unix/RFC 2307);
  • --unix-home — домашний каталог пользователя (Unix/RFC 2307);
  • --uid — имя пользователя (Unix/RFC 2307);
  • --uid-number — уникальный числовой идентификатор пользователя (Unix/RFC 2307);
  • --gid-number — числовой идентификатор основной группы пользователя (Unix/RFC 2307);
  • --gecos — информация о пользователе в поле GECOS (Unix/RFC 2307);
  • --login-shell — оболочка (shell), которая должна запускаться при входе в систему пользователя (Unix/RFC 2307)
user create <имя пользователя> [<пароль>] [опции]
Создать нового пользователя
Команда доступна только в целях совместимости. Вместо этой команды рекомендуется использовать команду samba-tool user add
user delete <имя пользователя> [опции]
Удалить существующего пользователя
При удалении учетной записи также удаляются все связанные с нею разрешения, права и членства в группах
user disable (<имя пользователя>| --filter <фильтр>) [опции]
Отключить пользовательский аккаунт
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене
user edit <имя пользователя> [опции]
Редактировать объект пользовательского аккаунта
В опции --editor=<редактор> можно указать редактор (по умолчанию vi)
user enable (<имя пользователя>| --filter <фильтр>) [опции]
Включить пользовательский аккаунт
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене.
user list [опции]
Вывести список пользователей
По умолчанию выводятся sAMAccountNames пользователей.
Можно использовать следующие опции:
  • --full-dn — показать различающиеся имена пользователей (CN) вместо sAMAccountNames;
  • -b BASE_DN|--base-dn=BASE_DN — вывести пользователей с указанным базовым DN;
  • --hide-expired — не выводить просроченные учётные записи пользователей;
  • --hide-disabled — не выводить отключенные учётные записи пользователей
user setprimarygroup <имя пользователя> <имя группы> [опции]
Установить основную группу для учётной записи пользователя
user getgroups <имя пользователя> [опции]
Вывести список групп, в которые входит учётная запись пользователя напрямую
Можно использовать следующие опции:
  • --full-dn — показать в списке вместо имен групп SAM (sAMAccountName) их полные уникальные имена (Distinguished Name, DN)
user show <имя пользователя> [опции]
Вывести атрибуты учетной записи
В опции --attributes=USER_ATTRS можно указать разделённый запятыми список атрибутов, значения которых требуется отобразить. Для вывода скрытых атрибутов, их необходимо явно указать в параметре --attributes>
user move <имя пользователя> <контейнер> [опции]
Переместить учётную запись пользователя в указанную организационную единицу или контейнер
Имя пользователя указывается в команде в формате sAMAccountName.
Имя организационной единицы или контейнера можно указать как полное DN, так и без компонента domainDN
user password [опции]
Изменить пароль текущей учетной записи (пользователя, прошедшего аутентификацию)
Если пароль не передается в открытом виде в значении параметра --newpassword, пользователь получит запрос на ввод пароля в командной строке
user rename <имя пользователя> [опции]
Переименовать пользователя и изменить его атрибуты
По умолчанию выводятся sAMAccountNames пользователей.
Для удаления атрибута следует использовать пустое значение атрибута.
Имя пользователя указывается в команде в формате sAMAccountName.
Некоторые опции:
  • --surname — новая фамилия;
  • --given-name — новое имя;
  • --initials — новые инициалы;
  • --force-new-cn — новый CN (вместо использования комбинации имени, инициалов и фамилии);
  • --reset-cn — установить CN на комбинацию имени, инициалов и фамилии по умолчанию;
  • --display-name — новое отображаемое имя;
  • --mail-address — новая электронная почта;
  • --samaccountname=SAMACCOUNTNAME — новое имя для входа (sAMAccountName);
  • --upn — новое основное имя пользователя
user setexpiry (<имя пользователя>| --filter <фильтр>) [опции]
Установить срок действия для учётной записи пользователя
По истечении заданного периода учетная запись отключается; пользователь не может получать доступ к ресурсам домена. При этом сохраняются связанные с учетной записью разрешения, права и членства.
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене;
  • --days — продолжительность периода в днях;
  • --noexpiry — период действия неограничен
user setpassword (<имя пользователя>| --filter <фильтр>) [опции]
Установить или сбросить пароль учетной записи пользователя
Если пароль не передается в открытом виде в значении параметра --newpassword, пользователь получит запрос на ввод пароля в командной строке.
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене;
  • --newpassword — новый пароль;
  • --must-change-at-next-login — пользователь должен изменить пароль при первом входе в домен;
  • --random-password — сформировать пароль случайным образом;
  • --smartcard-required — требовать наличие смарт-карты при входе в интерактивном режиме
user unlock (<имя пользователя>| --filter <фильтр>) [опции]
Разблокировать учётную запись пользователя в домене
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене
user getpassword (<имя пользователя>| --filter <фильтр>) [опции]
Получить атрибуты пароля учётной записи пользователя
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене;
  • --attributes — атрибуты (через запятую), которые требуется вывести или передать скрипту, заданному в параметре --script. В параметре могут передаваться любые атрибуты, заданные в схеме каталога, а также следующие виртуальные атрибуты: virtualClearTextUTF16, virtualClearTextUTF8, virtualCryptSHA256, virtualCryptSHA512, virtualKerberosSalt, virtualSSHA, virtualSambaGPG, virtualDigest01..29;
  • --decrypt-samba-gpg — дешифровать пароль SambaGPG (должен быть установлен пакет python3-module-gpg)
user syncpasswords [--cache-ldb-initialize] [опции]
Синхронизировать пароли всех учётных записей пользователей с помощью дополнительного сценария
Эта команда должна выполняться только на одном контроллере домена (обычно на PDC).
В первый раз команда должна выполняться с параметром, обеспечивающим инициализацию кеша: --cache-ldb-initialize. Для корректной инициализации кеша требуется передать список атрибутов в параметре --attributes

Примечание

Полный список параметров каждой команды можно увидеть в справке, например:
# samba-tool user add --help
Примеры:
  • создать пользователя ivanov в подразделении KDE, пользователь должен изменить пароль при следующем входе в систему:
    # samba-tool user add ivanov --given-name='Иван' \
    --surname='Иванов' --mail-address='ivanov@test.alt' \
    --userou='OU=KDE' --must-change-at-next-login
    
    New Password:
    Retype Password:
    User 'ivanov' added successfully
    
  • создать пользователя kim со случайным паролем, с указанием удаленного LDAP-сервера, пользователь должен изменить пароль при следующем входе в систему:
    # samba-tool user add kim --given-name='Виталий' \
    --surname='Ким' --mail-address='kim@test.alt' \
    --must-change-at-next-login  --random-password \
    -H ldap://dc2.test.alt -U administrator
    
    Password for [TEST\administrator]:
    User 'kim' added successfully
    
  • установить, что срок действия пароля пользователя ivanov никогда не истекает:
    # samba-tool user setexpiry ivanov --noexpiry
    
    Expiry for user 'ivanov' disabled.
    
  • задать 20-дневный период действия (начиная с текущей даты) для учетной записи kim:
    # samba-tool user setexpiry kim --days=20
    
    Expiry for user 'kim' set to 20 days.
    
  • просмотреть список учётных записей пользователей:
    # samba-tool user list
    Guest
    ivanov
    Administrator
    krbtgt
    kim
    
  • отключить пользователя ivanov:
    # samba-tool user disable ivanov
    
  • включить всех пользователей, почтовый ящик которых начинается на k:
    # samba-tool user enable --filter=mail=k*
    Enabled user 'mail=k*'
    
  • изменить пароль пользователя ivanov:
    # samba-tool user setpassword ivanov
    
    New Password:
    Retype Password:
    Changed password OK
    
  • переместить пользователя kim в подразделение KDE:
    # samba-tool user move kim 'OU=KDE'
    
    Moved user "kim" into "OU=KDE,DC=test,DC=alt"
    
  • получить информацию о пароле пользователя ivanov:
    # samba-tool user getpassword ivanov \
    --attributes=pwdLastSet,virtualClearTextUTF8
    
    dn: CN=Иван Иванов,OU=TEST,DC=test,DC=alt
    pwdLastSet: 133628348830281440
    
    Got password OK
    
  • удалить пользователя ivanov:
    # samba-tool user delete ivanov
    
    Deleted user ivanov
    

Предупреждение

Не следует допускать одинаковых имён для пользователя и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). Если компьютер с таким именем заведён, удалить его можно командой: pdbedit -x -m имя

Примечание

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

Таблица 37.2. Команды samba-tool для управления группами

Команда
Описание
Примечание
group add <имя группы> [опции]
Создать новую группу
Переданное в команде значение <имя группы> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Оно должно быть уникальным.
Некоторые опции:
  • --groupou — имя (DN) альтернативного расположения (без domainDN), в котором будет создана группа (вместо используемого по умолчанию CN=Users);
  • --group-scope — область действия, возможные значения: Domain, Global, Universal;
  • --group-type — тип группы, возможные значения: Security, Distribution;
  • --description — описание группы;
  • --mail-address — адрес электронной почты группы;
  • --notes — дополнительная информация;
  • --gid-number — числовой идентификатор группы Unix/RFC 2307;
  • --nis-domain — домен службы сетевой информации (NIS);
  • --special — используется для создания группы безопасности с именем Protected Users
group create <имя группы> [опции]
Создать новую группу
Доступна только в целях совместимости. Рекомендуется вместо этой команды использовать команду samba-tool group add
group addmembers <имя группы> (<список участников>|--member-dn=<member-dn>) [опции]
Добавить участников в группу
Команда позволяет добавить в группу одного или нескольких участников (указанных через запятую). В качестве участника группы может выступать учетная запись пользователя, учетная запись компьютера или другая группа, существующая в домене.
Некоторые опции:
  • --member-dn — уникальное составное имя (DN) добавляемого в группу нового участника (значение опции --object-types игнорируется);
  • --object-types — список типов объектов (через запятую); указанные типы используются в качестве фильтра при выполнении поиска для указанных в команде участников; возможные значения: user, group, computer, serviceaccount, contact, all; значение по умолчанию — user,group,computer;
  • --member-base — базовое уникальное имя (DN) для поиска участников группы; значение по умолчанию — уникальное имя (DN) домена
group delete <имя группы> [опции]
Удалить группу
Операция удаления является необратимой.
При удалении группы также удаляются все связанные с нею разрешения и права, а также унаследованные от нее разрешения и права участников.
group edit <имя группы> [опции]
Редактировать объект группы
В опции --editor=<редактор> можно указать редактор (по умолчанию vi)
group addunixattrs <имя группы> <gidnumber> [опции]
Добавить атрибуты Unix/RFC 2307 для группы
Для использования этих атрибутов для сопоставления UID/GID в конфигурации (smb.conf) должен быть задан параметр idmap_ldp:use rfc2307 = Yes
group list [опции]
Вывести список групп
По умолчанию выводится список имен учетных записей SAM (sAMAccountName).
Можно использовать следующие опции:
  • --full-dn — выводить уникальные имена (DN) вместо sAMAccountNames;
  • b BASE_DN|--base-dn=BASE_DN — выводить в списке только группы с указанным базовым уникальным именем (DN)
group listmembers <имя группы> [опции]
Вывести список участников данной группы
По умолчанию выводятся sAMAccountNames участников. Если sAMAccountName недоступен, будет использоваться CN.
Можно использовать следующие опции:
  • --full-dn — показать различающиеся имена участников (CN) вместо sAMAccountNames;
  • --hide-expired — не выводить членов группы с истекшим сроком действия;
  • --hide-disabled — не выводить отключённых членов группы
group move <имя группы> <контейнер> [опции]
Переместить группу в указанную организационную единицу или контейнер
Имя группы указывается в команде в формате sAMAccountName.
Имя организационной единицы или контейнера можно указать как полное DN или без компонента domainDN
group removemembers <имя группы> (<список участников>|--member-dn=<member-dn>) [опции]
Удалить участников из группы
Команда позволяет удалить из группы одного или нескольких участников (указанных через запятую).
При удалении из группы участник теряет все унаследованные от нее разрешения и права.
Некоторые опции:
  • --member-dn — уникальное составное имя (DN) удаляемого из группы участника (значение опции --object-types игнорируется);
  • --object-types — список типов объектов (через запятую); указанные типы используются в качестве фильтра при выполнении поиска для указанных в команде участников; возможные значения: user, group, computer, serviceaccount, contact, all; значение по умолчанию — user,group,computer;
  • --member-base — базовое уникальное имя (DN) для поиска участников группы; значение по умолчанию — уникальное имя (DN) домена
group show <имя группы> [опции]
Вывести группу и её атрибуты
В опции --attributes=USER_ATTRS можно указать список атрибутов (через запятую)
group stats [опции]
Показать статистику для общих групп и членства в группах
В результате выполнения команды выводятся следующие сведения:
  • общее количество групп;
  • общее количество участников (без учета вложенности);
  • среднее количество участников в группе;
  • максимальное количество участников в группе;
  • медианное количество участников в группе;
  • распределение участников по группам с точки зрения количественного состава
group rename <имя группы> [опции]
Переименовать группу и изменить её атрибуты
Для удаления атрибута следует использовать пустое значение атрибута.
Имя группы указывается в команде в формате sAMAccountName.
Можно использовать следующие опции:
  • --force-new-cn=NEW_CN — новый CN (вместо использования sAMAccountName);
  • --reset-cn — установить CN равным sAMAccountName;
  • --mail-address=MAIL_ADDRESS — новая электронная почта;
  • --samaccountname=SAMACCOUNTNAME — новое имя для входа (sAMAccountName)

Примечание

Полный список параметров каждой команды можно увидеть в справке, например:
# samba-tool group add --help
В группу могут входить учетные записи пользователей и компьютеров, а также другие группы. Такое объединение объектов в рамках одной сущности упрощает работу с ними, включая выполнение задач по управлению безопасностью и системному администрированию.
Группы также могут использоваться для создания списков рассылки (группы рассылки). Для этого при вызове команды создания группы должна быть передана опция --group-type=Distribution.
Группы располагаются в подразделениях (OU). Область действия (scope) группы определяет место группы в дереве доменов.
Примеры:
  • добавить группу безопасности:
    # samba-tool group add office --description='Simple group'
    Added group office
    
  • добавить новую группу рассылки с указанием удалёного LDAP-сервера:
    # samba-tool group add manager --group-type=Distribution \
     -H ldap://dc2.test.alt -U administrator
    
    Added group manager
    
  • добавить новую группу в соответствии с RFC 2307 в домен NIS samdom с GID 12345:
    # samba-tool group add mygroup --nis-domain=samdom --gid-number=12345
    Added group mygroup
    
  • удалить группу:
    # samba-tool group delete office
    Deleted group office
    
  • добавить пользователя ivanov в группу «Domain Users»:
    # samba-tool group addmembers "Domain Users" ivanov
    
  • добавить в группу mygroup пользователей kim, ivanov и группу manager:
    # samba-tool group addmembers mygroup manager,kim,ivanov
    
  • удалить пользователя ivanov из группы «Domain Users»:
    # samba-tool group removemembers "Domain Users" ivanov
    
  • переместить группу manager в подразделение OU:
    # samba-tool group move manager 'OU=OU'
    Moved group "manager" into "OU=OU,DC=test,DC=alt"
    
  • вывести список пользователей группы «Domain Users»:
    # samba-tool group listmembers "Domain Users"
    
  • получить определённые атрибуты группы manager:
    # samba-tool group show manager --attributes=member,objectGUID
    dn: CN=test2,CN=Users,DC=test,DC=alt
    objectGUID: 2f708ea2-f42c-4344-af22-bc243301c777
    member: CN=Иван Иванов,OU=KDE,DC=test,DC=alt
    
  • получить общую информацию о группах и их участниках:
    # samba-tool group stats
    
    Group membership statistics*
    -------------------------------------------------
    Total groups: 48
    Total memberships: 32
    Average members per group: 0.67
    Max members: 8 (Denied RODC Password Replication Group)
    Median members per group: 0.0
    
    Members        Number of Groups
    -------------------------------------------------
              0-1  42
              2-4  5
              5-9  1
    
    * Note this does not include nested group membership
    
В Альт Домен поддерживается работа с группой безопасности «Protected Users» («Защищенные пользователи»). В данную группу должны включаться только учетные записи пользователей. После добавления в группу в отношении учетной записи начинают действовать следующие ограничения:
  • недоступна аутентификация по протоколу NTLM;
  • пользователю не выдаются и от пользователя не принимаются билеты Kerberos с использованием алгоритма шифрования RC4 (используется алгоритм AES);
  • максимальный период действия билета — 4 часа;
  • недоступно неограниченное и ограниченное делегирование Kerberos.

Примечание

Группа «Защищенные пользователи» доступна только при функциональном уровне домена Windows Server 2012 R2.
Для создания группы безопасности «Защищенные пользователи» следует создать группу «Protected Users» с указанием опции --special:
# samba-tool group add 'Protected Users' --special