Домен/Скрипты: различия между версиями
(не показано 5 промежуточных версий 3 участников) | |||
Строка 28: | Строка 28: | ||
|alterator-cmdline||[http://packages.altlinux.org/en/Sisyphus/srpms/alterator alterator]||Вызов методов бэкендов модулей Alterator | |alterator-cmdline||[http://packages.altlinux.org/en/Sisyphus/srpms/alterator alterator]||Вызов методов бэкендов модулей Alterator | ||
|- | |- | ||
|system-auth||[http://packages.altlinux.org/en/Sisyphus/srpms/alterator-auth alterator-auth]||Просмотр и | |system-auth||[http://packages.altlinux.org/en/Sisyphus/srpms/alterator-auth alterator-auth]||Просмотр и установка текущей схемы аутентификации | ||
|} | |} | ||
Строка 137: | Строка 137: | ||
* Регистр указываемых полей несущественен. | * Регистр указываемых полей несущественен. | ||
* Если объект содержит несколько записей с одинаковым полем (например, memberUid в группах), значения будут показаны через запятую. | * Если объект содержит несколько записей с одинаковым полем (например, memberUid в группах), значения будут показаны через запятую. | ||
Примеры: | Примеры: | ||
Строка 348: | Строка 294: | ||
;-x <список пользователей> {{Since|0.8.1}} | ;-x <список пользователей> {{Since|0.8.1}} | ||
:Удалить пользователей по списку, разделённого запятыми, из группы | :Удалить пользователей по списку, разделённого запятыми, из группы | ||
;-g <GID или имя системной группы> {{Since|0.8.3}} | |||
:Привязать группу LDAP к системной группе Unix | |||
;-s [<имя группы Samba>] {{Since|0.8.3}} | |||
:Привязать группу LDAP к группе Samba | |||
;-u {{Since|0.8.3}} | |||
:Удалить группу Samba, привязанную к указанной группе LDAP | |||
;<режим> | ;<режим> | ||
:режим изменений. | :режим изменений. | ||
Строка 364: | Строка 316: | ||
:имя группы домена. | :имя группы домена. | ||
При указании параметра {{term|-m}} | При указании параметра {{term|-m}}, {{term|-x}}, {{term|-g}}, {{term|-s}}, {{term|-u}} указывать режим не нужно. | ||
Добавляемые или удаляемые поля передаются через стандартный поток ввода в виде {{term|memberUid:<имя пользователя>}} | Добавляемые или удаляемые поля передаются через стандартный поток ввода в виде {{term|memberUid:<имя пользователя>}} | ||
Строка 445: | Строка 397: | ||
# system-auth write krb5 dc=test,dc=altlinux,dc=ru ldaps://ldap.test.altlinux.ru | # system-auth write krb5 dc=test,dc=altlinux,dc=ru ldaps://ldap.test.altlinux.ru | ||
= Поля LDAP = | |||
{{:Домен/LDAP}} | |||
<!-- Есть в [[Домен/LDAP]] | |||
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}} | |||
--> |
Текущая версия от 23:21, 21 февраля 2021
Программы для управления доменом.
Программа | Пакет | Назначение |
---|---|---|
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-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 <группа[,...]] [-w] [-i] <имя пользователя>
Параметры:
- -n <Имя>
- имя пользователя
- -f <Фамилия>
- фамилия пользователя
- -с <ФИО полностью>
- полные фамилия имя отчество пользователя.
- Примечание: Так как отдельного поля для отчества в штатной схеме LDAP нет, было решено добавить его в поле cn. При обработке оно смотрит на содержимое фамилии и имени, убирает их из cn и получает отчество. Поэтому для определения отчества указывайте их с фамилией и именем в параметре -c.
- -d <домашний каталог>
- домашний каталог пользователя на сервере. По умолчанию: /home/<имя пользователя>
- -s <интерпретатор>
- интерпретатор команд. По умолчанию: /bin/bash. Если указать /sbin/nologin или /dev/null, пользователь не сможет войти по SSH на сервер.
- -p <пароль>
- пароль пользователя. Пароль можно установить позднее командой ldap-passwd.
- -G <группа,...>
- По умолчанию в LDAP создаётся и одноимённая с пользователем группа. Параметр -G предназначен для включения нового пользователя в уже созданные группы LDAP (группы указываются через запятую).
- -w с версии 0.8.0
- Создать не пользователя, а рабочую станцию
- -i с версии 0.8.0
- Рабочая станция (необходимо также указание ключа -w) является доверенной. Даже если не указан символ $ в конце имени рабочей станции, он добавляется автоматически.
- <имя пользователя>
- имя пользователя или рабочей станции. Единственный обязательный параметр.
Пример:
ldap-useradd -f Филиппов -n Иван -c 'Филиппов Иван Дмитриевич' -d /home/fill -s /bin/bash -p pASSWORD -G g1,group2 fill
ldap-userdel
Удаление пользователя или рабочей станции из домена.
Использование:
ldap-userdel [-r] [-w] <имя пользователя>
Параметры:
- -r
- удалить домашний каталог пользователя и его почтовый ящик
- -w с версии 0.8.0
- удалить не пользователя, а рабочую станцию
- <имя пользователя>
- имя пользователя или рабочей станции. Единственный обязательный параметр.
Пример:
ldap-userdel -r fill
ldap-usermod
Изменение данных о пользователе домена.
Использование:
ldap-usermod [-g <группа> |<режим>] <имя пользователя>
Параметры:
- -g <группа> с версии 0.8.1
- установить основную группу у пользователя
- <режим>
- режим изменений.
Режим | Описание |
---|---|
add | Добавляет поле записи пользователя |
replace | Изменяет значения полей (изменяются только переданные поля) |
del | Удаляет поле записи пользователя |
- <имя пользователя>
- имя пользователя домена.
При указании параметра -g режим указывать не нужно.
Добавляемые или удаляемые поля передаются через стандартный поток ввода в виде <имя поля>:<значение>. Имя поля нечувствительно к регистру. Список поддерживаемых полей смотрите в описании ldap-getent.
Пример:
echo "mail:sidorov@domain.ru" | ldap-usermod add sid
ldap-passwd
Изменение пароля пользователя домена.
Использование:
ldap-passwd <имя пользователя> [<пароль>]
Параметры:
- <имя пользователя>
- имя существующего пользователя домена
- <пароль>
- новый пароль. Если параметр не указан, пароль считывается из стандартного потока ввода.
Пример:
ldap-passwd fill NewPaSsWoRD
ldap-groupadd
Добавление группы в домен.
Использование:
ldap-groupadd <имя группы> [<gid>] ldap-groupadd --default
Параметры:
- <имя группы>
- имя новой группы домена.
- <gid>
- необязательный идентификатор группы. Если идентификатор совпадает с идентификатором системной группы, при регистрации под правами получает права в локальных группах (правда, не все системные группы имеют одинаковый идентификатор на разных компьютерах)
- --default с версии 0.8.1
- Создать группы по списку и добавить всех пользователей в группы по умолчанию:
- Список групп (по одной в каждой строке, комментарии начинаются с символа #, пустые строки игнорируются) указывается в файле /etc/alterator/ldap-groups/group-init-list (пакет alterator-ldap-groups)
- Если имя группы совпадает с именем системной группы на сервере (в файле /etc/group), то создаётся группа с идентификатором системной группы
- Список групп по умолчанию, разделённый пробелами) находится в параметре default_groups = в файле /usr/lib/alterator/backend3/ldap-users (пакет alterator-ldap-users)
Пример:
ldap-groupadd staff
ldap-groupdel
Удаление группы из домена.
Использование:
ldap-groupdel <имя группы>
Параметры:
- <имя группы>
- имя группы домена.
Пример:
ldap-groupdel staff
ldap-groupmod
Изменение данных о составе группы домена.
Использование:
ldap-groupmod [-m|-x <список пользователей> | <режим>] <имя группы>
Параметры:
- -m <список пользователей> с версии 0.8.1
- Добавить пользователей из списка, разделённого запятыми, в группу
- -x <список пользователей> с версии 0.8.1
- Удалить пользователей по списку, разделённого запятыми, из группы
- -g <GID или имя системной группы> с версии 0.8.3
- Привязать группу LDAP к системной группе Unix
- -s [<имя группы Samba>] с версии 0.8.3
- Привязать группу LDAP к группе Samba
- -u с версии 0.8.3
- Удалить группу Samba, привязанную к указанной группе LDAP
- <режим>
- режим изменений.
Режим | Описание |
---|---|
add | Добавляет пользователей в группу |
replace | Изменяет состав группы (удаляет всех пользователей и заводит новый состав) |
del | Удаляет пользователей из группы |
- <имя группы>
- имя группы домена.
При указании параметра -m, -x, -g, -s, -u указывать режим не нужно.
Добавляемые или удаляемые поля передаются через стандартный поток ввода в виде memberUid:<имя пользователя>
Пример:
Добавить пользователя fill в группу staff
echo 'memberUid:fill' | ldap-groupmod add staff
или с версии 0.8.1
ldap-groupmod -m fill staff
Удалить пользователя fill из группы staff
echo 'memberUid:fill' | ldap-groupmod del staff
или с версии 0.8.1
ldap-groupmod -x fill 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 (TEST.ALTLINUX) 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
Поля LDAP
Поддерживаемые поля LDAP (служебные поля опущены):
Режим | Описание |
---|---|
Пользователи | |
uid | Логин пользователя в системе |
givenName | Имя |
sn | Фамилия |
cn | Фамилия Имя Отчество |
loginShell | Интерпретатор команд |
uidNumber | Идентификатор пользователя (число) |
gidNumber | Идентификатор группы (число) |
homeDirectory | Домашний каталог |
Адрес электронной почты | |
o | Организация |
ou | Подразделение |
title | Должность |
telephoneNumber | Телефон |
mobile | Мобильный телефон |
departmentNumber | Отдел |
postalAddress | Адрес |
jpegPhoto | Файл с фотографией |
Группы | |
cn | Название группы |
gidNumber | Идентификатор группы (число) |
memberUid | Имя члена группы |
Рабочие станции с версии 0.8.0 | |
uid | Имя компьютера (доверенные заканчиваются символом «$») |
uidNumber | Идентификатор рабочей станции |