Домен/Скрипты
Программы для управления доменом.
Программа | Пакет | Назначение |
---|---|---|
ldap-init | ldap-user-tools | Инициализирует базовый DN текущего домена, создаёт подразделы |
ldap-dn | Управление базовыми DN | |
ldap-getent | Получение записей о пользователях и группах домена в формате getent(1) | |
ldap-useradd | Добавление пользователя в домен | |
ldap-userdel | Удаление пользователя из домена | |
ldap-usermod | Изменение данных о пользователе домена | |
ldap-passwd | Изменение пароля пользователя домена | |
ldap-groupadd | Добавление группы в домен | |
ldap-groupdel | Удаление группы из домена | |
ldap-groupmod | Изменение данных о составе группы домена | |
alterator-cmdline | alterator | Вызов методов бэкендов модулей Alterator |
system-auth | alterator-auth | Просмотр и устанавка текущей схемы аутентификации |
ldap-user-tools
Вспомогательные программы входят в пакет ldap-user-tools. Все программы размещены в каталоге /usr/sbin, поэтому доступны без полного пути администратору. См. Su. Каждый скрипт поддерживает параметры -h и --help для выдаче справки по использованию скрипта и --version для показа версии пакета и сервера LDAP.
Переменные среды окружения
Переменная | Пример | Описание |
---|---|---|
DN_CONF | /etc/openldap/slapd-test.altlinux.ru.conf | Файл с конфигурацией base DN текущего домена |
ENABLE_KRB | yes | Если «yes», дополнительно использовать базу Kerberos для операций |
Переменные заполняются автоматически, если текущий домен настроен и используется для аутентификации. Просмотреть значения переменных можно командами:
. /usr/bin/alterator-openldap-functions
set_ldap_config
echo $DN_CONF
echo $ENABLE_KRB
Совет: При указании значения переменной DN_CONF перед запуском скриптов ldap-* можно переназначить работу с доменом LDAP, отличным от используемого для аутентификации.
Примечание: переменная DN_CONF заполняется из вывода текущей схемы аутентификации
system-auth status
значение переменной ENABLE_KRB выставляется в «yes», если в файле /etc/sysconfig/system есть значение SERVER_ROLE=master.
ldap-init
Инициализирует базовый DN текущего домена, создаёт подразделы. Явно не используется.
ldap-dn
Управление базовыми DN.
Использование:
ldap-dn <команда> [<базовый DN>]
Параметры:
- <команда>
- команда на изменение:
Режим | Описание |
---|---|
list | Список доступных базовых DN |
create | Создать базовый DN |
delete | Удалить базовый DN |
find | Показ файла конфигурации базового DN |
master | Установить как базовый DN по умолчанию |
- <базовый DN>
- базовый DN домена.
Команды list и find выводят записи в виде <базовый DN> <файл конфигурации>
Примеры:
Список базовых DN:
# ldap-dn list dc=test,dc=altlinux,dc=ru /etc/openldap/slapd-test.altlinux.ru.conf
Создание базового DN:
# ldap-dn create dc=school-100 hdb_monitor_db_open: monitoring disabled; configure monitor database to enable _#################### 100.00% eta none elapsed none fast! Closing DB...
Показ файла конфигурации:
# ldap-dn find dc=school-100 /etc/openldap/slapd-school-100.conf
Установка базового DN по умолчанию:
# ldap-dn master dc=test,dc=altlinux,dc=ru
Удаление базового DN:
# ldap-dn delete dc=school-100
ldap-getent
Получение записей о пользователях и группах домена в формате getent(1).
Использование:
ldap-getent <класс> [<имя>] [<поле>[,...]]
Параметры:
- <класс>
- возможные значения: passwd (пользователи), group (группы), ws (зарегистрированные рабочие станции) с версии 0.8.0
- <имя>
- имя пользователя, группы или рабочей станции. Если опущено, показываются все объекты.
- <поле>
- список полей LDAP, которые нужно показать вместо обычного вывода в формате getent(1) (значения разделены двоеточием, пароли не показываются):
- Для пользователей:
uid:userPassword:uidNumber:gidNumber:gecos:homeDirectory:loginShell
- Для групп:
cn:userPassword:gidNumber:memberUid
- Для рабочих станций
uidNumber
Примечания:
- Регистр указываемых полей несущественен.
- Если объект содержит несколько записей с одинаковым полем (например, memberUid в группах), значения будут показаны через запятую.
Поддерживаемые поля LDAP (служебные поля опущены):
Режим | Описание |
---|---|
Пользователи | |
uid | Имя заводимого пользователя в системе |
givenName | Имя |
sn | Фамилия |
cn | Фамилия Имя Отчество |
loginShell | Интерпретатор команд |
uidNumber | Идентификатор пользователя |
gidNumber | Идентификатор группы |
homeDirectory | Домашний каталог |
Адрес электронной почты | |
ou | Подразделение |
title | Должность |
telephoneNumber | Телефон |
mobile | Мобильный |
departmentNumber | Отдел |
postalAddress | Адрес |
Группы | |
cn | Название |
gidNumber | Идентификатор группы |
memberUid | Имя члена группы |
Рабочие станции с версии 0.8.0 | |
uidNumber | Идентификатор рабочей станции |
Примеры:
Показать всех пользователей:
# ldap-getent passwd l1::5000:5000::/home/l1:/bin/bash user::5001:5001::/home/user:/bin/bash ivanov::5002:5002::/home/ivanov:/bin/bash l2::5003:5005::/home/l2:/bin/bash iv::5005:5008::/home/iv:/bin/bash fill::5006:5009::/home/fil:/bin/sh
Показать состав группы admins:
# ldap-getent group admins memberuid l1,user,ivanov
ldap-useradd
Добавление пользователя в домен.
Использование:
ldap-useradd [-n <Имя>] [-f <Фамилия>] [-c <ФИО полностью>] [-d <домашний каталог>] [-s <интерпретатор>] [-p <пароль>] [-G <группа[,...]] <имя пользователя>
Параметры:
- -n <Имя>
- имя пользователя
- -f <Фамилия>
- фамилия пользователя
- -с <ФИО полностью>
- полные фамилия имя отчество пользователя.
- Примечание: Так как отдельного поля для отчества в штатной схеме LDAP нет, было решено добавить его в поле cn. При обработке оно смотрит на содержимое фамилии и имени, убирает их из cn и получает отчество. Поэтому для определения отчества указывайте их с фамилией и именем в параметре -c.
- -d <домашний каталог>
- домашний каталог пользователя на сервере. По умолчанию: /home/<имя пользователя>
- -s <интерпретатор>
- интерпретатор команд. По умолчанию: /bin/bash. Если указать /sbin/nologin или /dev/null, пользователь не сможет войти по SSH на сервер.
- -p <пароль>
- пароль пользователя. Пароль можно установить позднее командой ldap-passwd.
- -G <группа,...>
- По умолчанию в LDAP создаётся и одноимённая с пользователем группа. Параметр -G предназначен для включения нового пользователя в уже созданные группы LDAP (группы указываются через запятую).
- <имя пользователя>
- имя пользователя. Единственный обязательный параметр.
Пример:
ldap-useradd -f Филиппов -n Иван -c 'Филиппов Иван Дмитриевич' -d /home/fill -s /bin/bash -p pASSWORD -G g1,group2 fill
ldap-userdel
Удаление пользователя из домена.
Использование:
ldap-userdel [-r] <имя пользователя>
Параметры:
- -r
- удалить домашний каталог пользователя и его почтовый ящик
- <имя пользователя>
- имя пользователя. Единственный обязательный параметр.
Пример:
ldap-userdel -r fill
ldap-usermod
Изменение данных о пользователе домена.
Использование:
ldap-usermod <режим> <имя пользователя>
Параметры:
- <режим>
- режим изменений.
Режим | Описание |
---|---|
add | Добавляет поле записи пользователя |
replace | Изменяет значения полей (изменяются только переданные поля) |
del | Удаляет поле записи пользователя |
- <имя пользователя>
- имя пользователя домена.
Добавляемые или удаляемые поля передаются через стандартный поток ввода в виде <имя поля>:<значение>. Имя поля нечувствительно к регистру. Список поддержваемых полей смотрите в описании ldap-getent.
Пример:
echo "mail:sidorov@domain.ru" | ldap-usermod add sid
ldap-passwd
Изменение пароля пользователя домена.
Использование:
ldap-passwd <имя пользователя> [<пароль>]
Параметры:
- <имя пользователя>
- имя существующего пользователя домена
- <пароль>
- новый пароль. Если параметр не указан, пароль считывается из стандартного потока ввода.
Пример:
ldap-passwd fill NewPaSsWoRD
ldap-groupadd
Добавление группы в домен.
Использование:
ldap-groupadd <имя группы>
Параметры:
- <имя группы>
- имя новой группы домена.
Пример:
ldap-groupadd staff
ldap-groupdel
Удаление группы из домена.
Использование:
ldap-groupdel <имя группы>
Параметры:
- <имя группы>
- имя группы домена.
Пример:
ldap-groupdel staff
ldap-groupmod
Изменение данных о составе группы домена.
Использование:
ldap-groupmod <режим> <имя группы>
Параметры:
- <режим>
- режим изменений.
Режим | Описание |
---|---|
add | Добавляет пользователей в группу |
replace | Изменяет состав группы (удаляет всех пользователей и заводит новый состав) |
del | Удаляет пользователей из группы |
- <имя группы>
- имя группы домена.
Добавляемые или удаляемые поля передаются через стандартный поток ввода в виде memberUid:<имя пользователя>
Пример:
Добавить пользователя fill в группу staff
echo 'memberUid:fill' | ldap-groupmod add staff
Удалить пользователя fill из группы staff
echo 'memberUid:fill' | ldap-groupmod del staff
Примечение: посмотреть список пользователей в группе можно командой
ldap-getent group <имя группы>
Пример:
# ldap-getent group staff memberUid fill,l1
alterator-cmdline
Все методы бэкендов модулей Alterator можно вызвать через команду alterator-cmdline. Ниже представлены полезные команды:
alterator-net-domain (Домен)
Просмотр текущего состояния домена
# alterator-cmdline /net-domain action read domain:test.altlinux.ru resolver:OK access:OK ldap:OK kdc:OK smb:OK dhcpd:OK master:#t
system-auth
Утилита system-auth входит в пакет alterator-auth и позволяет просматривать и устанавливать текущую схему аутентификации.
Использование:
system-auth <действие> [<дополнительно>]
Действия:
list
Cписок поддерживаемых схем аутентификации. Пример:
# system-auth list local ldap krb5
status
Текущая схема аутентификации и её параметры. Пример на сервере:
# system-auth status ldap dc=test,dc=altlinux,dc=ru ldap://127.0.0.1
Пример на клиенте:
# system-auth status krb5 dc=test,dc=altlinux,dc=ru ldaps://ldap.test.altlinux.ru
write
Изменить схему аутентификации
Использовать локальную базу tcb:
# system-auth write local
Использовать аутентификацию в LDAP без Kerberos:
# system-auth write ldap dc=test,dc=altlinux,dc=ru ldap://127.0.0.1
Использовать аутентификацию в LDAP c Kerberos:
# system-auth write krb5 dc=test,dc=altlinux,dc=ru ldaps://ldap.test.altlinux.ru