Особенности аутентификации при выполнении команд с помощью samba-tool
Для использования samba-tool при работе с контроллерами домена «Эллес» требуется аутентификация.
См. описание поддерживаемых samba-tool опций для указания данных для аутентификации в разделе
«Параметры аутентификации».
|
Основной способ аутентификации
Для большинства команд, предусматривающих обращение к базе данных каталога, запрещен прямой доступ к экземпляру базы данных на отдельном контроллере домена «Эллес» с правами суперпользователя (root/sudo). Вместо этого выполняется обращение к серверу LDAP с использованием аутентификации Kerberos.
С этой целью при вызове таких команд по умолчанию передается набор ключей:
-
-H ldap://<hostname>— URL сервера LDAP, гдеhostname— имя хоста контроллера домена, на котором происходит вызов команды; -
--use-kerberos=required— указание на обязательное использование аутентификации Kerberos.
Таким образом, для успешного выполнения команды:
-
либо пользователь должен работать на сервере под доменной учетной записью с достаточными для выполнения запрашиваемой операции правами;
При входе в систему с доменной учетной записью пользователю автоматически выдается билет Kerberos с определенным сроком действия, который в дальнейшем используется при вызове команд с помощью
samba-tool. -
либо предварительно требуется запросить для пользователя билет Kerberos с помощью стандартной команды
kinit.В этом случае команда должна выполняться от имени того пользователя, для которого запрашивался билет Kerberos. По истечении установленного срока действия билета он должен быть запрошен повторно.
Например:
kinit Administrator@ELLES.INNO.TECH samba-tool user list
При необходимости выполнить операцию на удаленном контроллере домена, требуется явно указать URL сервера LDAP в значении ключа -H|--URL.
Например:
kinit Administrator@ELLES.INNO.TECH samba-tool user list \ -H ldap://dc01.elles.inno.tech
Запуск с правами суперпользователя (root/sudo)
Если для запуска команды требуются права суперпользователя (root/sudo), в ее описании в документации содержится явное указание на это в виде примечания в подразделе с описанием синтаксиса вызова.
При попытке выполнить от имени пользователя root или другого локального пользователя с повышением привилегий с помощью sudo команду, для которой это запрещено, samba-tool возвращает сообщение о невозможности установить соединение с сервером LDAP, работающем на хосте, где запрашивается команда.
Дополнительные способы аутентификации
Помимо аутентификации по умолчанию через Kerberos samba-tool поддерживает несколько альтернативных методов аутентификации.
Аутентификация с использованием доменного имени и пароля (-U)
Указание имени пользователя и пароля в командной строке:
samba-tool user list \ -H ldap://dc01.elles.inno.tech \ -U "ELLES\\Administrator%Password123!"
| Пароль передается в открытом виде в командной строке, что небезопасно. |
Если пароль не указан, samba-tool запросит его интерактивно:
samba-tool user list \ -H ldap://dc01.elles.inno.tech \ -U "ELLES\\Administrator" Password for [ELLES\Administrator]:
Аутентификация через файл с учетными данными (-A)
Создайте файл authfile.txt с содержимым:
username=Administrator password=Password123!
Запустите команду:
samba-tool user list \ -H ldap://dc01.elles.inno.tech \ -A /path/to/authfile.txt
Установите строгие права доступа к файлу: chmod 600 /path/to/authfile.txt && chown root:root /path/to/authfile.txt.
|
Аутентификация с использованием keytab-файла (--use-keytab)
Для аутентификации без пароля используйте keytab-файл, содержащий ключи доменной учетной записи.
Предположим, keytab-файл /etc/krb5.keytab.user1 содержит ключи для user1@ELLES.INNO.TECH:
samba-tool user list \ -H ldap://dc01.elles.inno.tech \ -U "user1@ELLES.INNO.TECH" \ --use-keytab=/etc/krb5.keytab.user1
|
В этом случае:
|
Аутентификация через кэш Kerberos (--use-krb5-ccache)
Если необходимо использовать конкретный кэш билетов (например, FILE:/tmp/krb5cc_1000):
samba-tool user list \ -H ldap://dc01.elles.inno.tech \ --use-krb5-ccache=FILE:/tmp/krb5cc_1000
Эта опция автоматически включает --use-kerberos=required.
Может быть полезна при работе в скриптах с предварительно подготовленным кэшем (например, после kinit -c /tmp/krb5cc_1000).
Аутентификация с использованием машинной учетной записи (-P)
Используйте пароль компьютерной учетной записи, хранящийся в secrets.tdb:
samba-tool user list \ -H ldap://dc01.elles.inno.tech \ -P
Данный способ аутентификации работает только на контроллере домена, где samba-tool имеет доступ к secrets.tdb.
Аутентификация через --simple-bind-dn
Простая аутентификация LDAP (без Kerberos) не поддерживается в режиме контроллера домена. Используется только для совместимости с LDAP-клиентами.
При попытке использования на контроллере домена «Эллес» возвращается ошибка LDAP error 8 LDAP_STRONG_AUTH_REQUIRED - <BindSimple: Transport encryption required>.
Аутентификация через файл с паролем (PASSWD_FILE)
Установите переменную окружения PASSWD_FILE:
export PASSWD_FILE=/path/to/password.txt samba-tool user list \ -H ldap://dc01.elles.inno.tech \ -U "ELLES\\Administrator"
Файл /path/to/password.txt должен содержать только пароль (без лишних символов).
Данный способ безопаснее, чем -U …%password, но требует защиты файла (chmod 600).
Приоритет применения
| Приоритет | Условие | Результат | Применение |
|---|---|---|---|
1 |
|
Используется пароль, keytab и Kerberos-билет игнорируются |
Ручной ввод пароля в командной строке (небезопасно) |
2 |
|
Используется Kerberos-билет из ccache ( |
Принудительная аутентификация через ccache (например, после |
3 |
|
Используется keytab-файл (без ввода пароля) |
Автоматизированная аутентификация с keytab (рекомендуется для скриптов) |
4 |
|
Запрашивается пароль интерактивно в терминале |
Ручной ввод пароля без передачи в командной строке |
5 |
Без |
Используется Kerberos-билет по умолчанию ( |
Стандартное поведение при входе под доменной УЗ (автоматический билет) |
6 |
|
Используется пароль машинной учетной записи из secrets.tdb |
Только на контроллере домена, для системных задач |
7 |
|
Используется файл с учетными данными (username/password) |
Безопасная аутентификация через файл (с ограничением прав) |
8 |
|
Используется указанный ccache, автоматически включает |
Альтернативный ccache (например, для тестирования) |
9 |
|
Используется простая LDAP-аутентификация (не рекомендуется) |
Совместимость с legacy-системами (небезопасно) |
10 |
|
Не запрашивает пароль, используется анонимная аутентификация |
Доступ к публичным атрибутам LDAP (редко применимо) |
11 |
Без параметров |
Используются переменные окружения ( |
Автоматическое определение из окружения (ненадежно) |