Домен/Скрипты: различия между версиями
Строка 121: | Строка 121: | ||
===ldap-getent=== | ===ldap-getent=== | ||
Получение записей о пользователях и группах домена в формате getent(1). | Получение записей о пользователях и группах домена в формате getent(1). | ||
Использование: | |||
ldap-getent <класс> [<имя>] [<поле>[,...]] | |||
Параметры: | |||
;<класс> | |||
:возможные значения: '''passwd''' (пользователи) и '''group''' (группы). | |||
;<имя> | |||
:имя пользователя или группы. Если опущено, показываются все объекты. | |||
;<поле> | |||
:список полей LDAP, которые нужно показать вместо обычного вывода в формате getent(1) (значения разделены двоеточием, пароли не показываются): | |||
:Для пользователей: <pre>uid:userPassword:uidNumber:gidNumber:gecos:homeDirectory:loginShell</pre> | |||
:Для групп: <pre>cn:userPassword:gidNumber:memberUid</pre> | |||
Примечания: | |||
* Регистр указываемых полей несущественен. | |||
* Если объект содержит несколько записей с одинаковым полем (например, memberUid в группах), значения будут показаны через запятую. | |||
Поддерживаемые поля LDAP (служебные поля опущены): | |||
{|class="standard" | |||
!Режим | |||
!Описание | |||
|- | |||
|colspan="2"|'''Пользователи''' | |||
|- | |||
|{{term|uid}}||Имя заводимого пользователя в системе | |||
|- | |||
|{{term|givenName}}||Имя | |||
|- | |||
|{{term|sn}}||Фамилия | |||
|- | |||
|{{term|cn}}||Фамилия Имя Отчество | |||
|- | |||
|{{term|loginShell}}||Интерпретатор команд | |||
|- | |||
|{{term|uidNumber}}||Идентификатор пользователя | |||
|- | |||
|{{term|gidNumber}}||Идентификатор группы | |||
|- | |||
|{{term|homeDirectory}}||Домашний каталог | |||
|- | |||
|{{term|mail}}||Адрес электронной почты | |||
|- | |||
|{{term|ou}}||Подразделение | |||
|- | |||
|{{term|title}}||Должность | |||
|- | |||
|{{term|telephoneNumber}}||Телефон | |||
|- | |||
|{{term|mobile}}||Мобильный | |||
|- | |||
|{{term|departmentNumber}}||Отдел | |||
|- | |||
|{{term|postalAddress}}||Адрес | |||
|- | |||
|colspan="2"|'''Группы''' | |||
|- | |||
|{{term|cn}}||Название | |||
|- | |||
|{{term|gidNumber}}||Идентификатор группы | |||
|- | |||
|{{term|memberUid}}||Имя члена группы | |||
|- | |||
|} | |||
Примеры: | |||
Показать всех пользователей:<pre># 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</pre> | |||
Показать состав группы admins: <pre># ldap-getent group admins memberuid | |||
l1,user,ivanov</pre> | |||
===ldap-useradd=== | ===ldap-useradd=== |
Версия от 12:17, 8 октября 2012
Программы для управления доменом.
Программа | Пакет | Назначение |
---|---|---|
ldap-init | ldap-user-tools | Инициализирует базовый DN текущего домена, создаёт подразделы |
ldap-dn | ldap-user-tools | Управление базовыми DN |
ldap-getent | ldap-user-tools | Получение записей о пользователях и группах домена в формате getent(1) |
ldap-useradd | ldap-user-tools | Добавление пользователя в домен |
ldap-userdel | ldap-user-tools | Удаление пользователя из домена |
ldap-usermod | ldap-user-tools | Изменение данных о пользователе домена |
ldap-passwd | ldap-user-tools | Изменение пароля пользователя домена |
ldap-groupadd | ldap-user-tools | Добавление группы в домен |
ldap-groupdel | ldap-user-tools | Удаление группы из домена |
ldap-groupmod | ldap-user-tools | Изменение данных о составе группы домена |
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 (группы).
- <имя>
- имя пользователя или группы. Если опущено, показываются все объекты.
- <поле>
- список полей LDAP, которые нужно показать вместо обычного вывода в формате getent(1) (значения разделены двоеточием, пароли не показываются):
- Для пользователей:
uid:userPassword:uidNumber:gidNumber:gecos:homeDirectory:loginShell
- Для групп:
cn:userPassword:gidNumber:memberUid
Примечания:
- Регистр указываемых полей несущественен.
- Если объект содержит несколько записей с одинаковым полем (например, memberUid в группах), значения будут показаны через запятую.
Поддерживаемые поля LDAP (служебные поля опущены):
Режим | Описание |
---|---|
Пользователи | |
uid | Имя заводимого пользователя в системе |
givenName | Имя |
sn | Фамилия |
cn | Фамилия Имя Отчество |
loginShell | Интерпретатор команд |
uidNumber | Идентификатор пользователя |
gidNumber | Идентификатор группы |
homeDirectory | Домашний каталог |
Адрес электронной почты | |
ou | Подразделение |
title | Должность |
telephoneNumber | Телефон |
mobile | Мобильный |
departmentNumber | Отдел |
postalAddress | Адрес |
Группы | |
cn | Название |
gidNumber | Идентификатор группы |
memberUid | Имя члена группы |
Примеры:
Показать всех пользователей:
# 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-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
Примечания
# control system-auth krb5
- Параметры аутентификации через LDAP находятся при использовании nss_ldap в файлах /etc/pam_ldap.conf и /etc/nss_ldap.conf, при использовании nss-ldapd — в файле /etc/nslcd.conf (при этом обязательно должна быть запущена служба nslcd).
- База имён пользователей (NSS) находится в файле /etc/nsswitch.conf