Работа с samba-tool

Основным инструментом администрирования продукта «Служба каталогов "Эллес"» с помощью интерфейса командной строки (CLI) является утилита samba-tool (/app/inno-samba/bin/samba-tool).

При использовании следующих подкоманд не рекомендован прямой доступ к базе данных Эллес пользователя root: computer, contact, delegation, dns, drs, dsacl, forest, fsmo, gpo, group, ntacl, ou, rodc, schema, sites, spn, time, user и др.

Для выполнения операций с помощью этих подкоманд рекомендуется указывать набор ключей -H (URI LDAP-сервера) и --use-kerberos=required.

В этом случае для успешного выполнения подкоманды:

  • либо пользователь должен работать на сервере под доменной учетной записью;

  • либо предварительно требуется запросить билет Kerberos с помощью стандартной команды kinit.

Группы операций

Доступны следующие группы операций:

Общий синтаксис samba-tool

Общий синтаксис вызова samba-tool:

samba-tool <subcommand> [options]

Общие параметры

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

  • -h|--help — вывод подробной информации о команде и доступных подкомандах;

  • -V|--version — версия пакета inno-samba и Samba;

    Например:

    /app/inno-samba/bin/samba-tool -V
    inno-samba 1.3.2 (Samba 4.20.0pre1-GIT-911c9a)
  • -d DEBUGLEVEL|--debuglevel=DEBUGLEVEL — уровень логирования (целое число от 0 до 10).

    Значение по умолчанию — 1.

    Чем больше значение, тем больший объем информации о работе сервера сохраняется в лог-файлах. При значении 0 фиксируются только критичные ошибки и значимые предупреждения. Оптимальным для повседневной эксплуатации является уровень 1, который предусматривает фиксацию небольшого объема информации о выполняемых операциях.

    Уровни выше 1 предусматривают формирование значительного объема данных. Использовать их следует только при возникновении проблем. Уровни выше 3 предназначены для использования разработчиками. Они предусматривают формирование значительного объема данных, большая часть которого не представляет интереса с точки зрения задач повседневной эксплуатации.

    Переданное в параметре значение переопределяет значение аналогичного параметра в файле smb.conf. См. подробнее в разделе «Логирование Эллес».
  • -s FILE|--configfile=FILE — путь к конфигурационному файлу smb.conf (если отличается от пути по умолчанию: /app/inno-samba/etc/smb.conf);

  • --option="OPTION=NEWVALUE" — переопределение параметра в конфигурационном файле smb.conf;

  • --realm=REALM — задание области безопасности для домена;

    Переданное в параметре значение переопределяет значение аналогичного параметра в файле /app/inno-samba/etc/smb.conf.
  • -H URL|--URL=URL — URL сервера LDAP.

Параметры аутентификации

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

  • --simple-bind-dn=DN — уникальное имя для использования samba-tool при простом удаленном подключении;

    Использовать данную опцию не рекомендуется, так как Эллес поддерживает более безопасные способы аутентификации (NTLM, Kerberos).
  • --password — пароль для передачи в командной строке;

    Не следует включать пароли в скрипты или передавать полученные от пользователя данные в качестве аргументов в командной строке. Из соображений безопасности рекомендуется задавать команды таким образом, чтобы инструменты Эллес самостоятельно запрашивали пароль, когда это требуется, либо получить разовый пароль с помощью kinit.

    Если значение --password не задано, команда проверяет значение переменной окружения PASSWD c сопутствующей переменной PASSWD_FD, в которой должен содержаться дескриптора открытого файла.

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

    Эллес предпримет попытку получить пароль из заголовка процесса (в том виде, в котором он отображается в ps). Однако это будет сделано уже после запуска процесса, что может привести к состоянию гонки.

  • -U [DOMAIN\]USERNAME[%PASSWORD]|--user=[DOMAIN\]USERNAME[%PASSWORD] — имя пользователя либо имя пользователя и пароль;

    Если пароль (%PASSWORD) не задан, пользователю будет предложено ввести его. Сначала будет проверяться переменная окружения USER (в которой допускается указывать пароль после символа %), после чего — переменная LOGNAME (которая не может содержать пароль). Если любая из этих двух переменных задана, то используется заданное в ней значение. Если переменные отсутствуют, может использоваться имя пользователя из кэша учетных данных Kerberos Credentials.

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

    Не следует включать пароли в скрипты или передавать полученные от пользователя данные в качестве аргументов в командной строке. Из соображений безопасности рекомендуется задавать команды таким образом, чтобы инструменты Эллес самостоятельно запрашивали пароль, когда это требуется, либо получить разовый пароль с помощью kinit.

    Samba предпримет попытку получить пароль из заголовка процесса (в том виде, в котором он отображается в ps). Однако это будет сделано уже после запуска процесса, что может привести к состоянию гонки.

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

    Заданное значение переопределяет домен по умолчанию, указанный в файле smb.conf. Если переданное имя домена совпадает с NetBIOS-именем сервера, вход осуществляется с использованием локального диспетчера безопасности учетных записей (SAM) сервера (в отличие от доменного SAM).

    Переданное в параметре значение переопределяет значение аналогичного параметра в файле smb.conf.
  • -P|--machine-pass — использовать сохраненный пароль учетной записи компьютера;

  • -N|--no-pass — указывает на отсутствие необходимости запрашивать у пользователя пароль;

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

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

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

  • -A AUTHFILE|--authentication-file=AUTHFILE — файл с реквизитами для аутентификации;

  • --use-kerberos=desired|required|off — необходимость аутентификации с использованием Kerberos;

    Для аутентификации с помощью Kerberos при подключении к службе вместо IP-адресов необходимо использовать DNS-имена.

    Переданное в параметре значение переопределяет значение аналогичного параметра в файле smb.conf.
  • --use-krb5-ccache=CCACHE — расположение кэша учетных данных для аутентификации с использованием Kerberos;

    Задание данного параметра означает, что --use-kerberos=required.

  • --ipaddress=IPADDRESS — IP-адрес сервера.

В подкомандах, предусматривающих обращение к двум серверам (например, сравнение БД LDAP на контроллерах домена), для аутентификации на втором сервере могут использоваться параметры --simple-bind-dn2, --username2, --password2, --workgroup2, --no-pass2 и --use-kerberos2.