Домен/Скрипты

Материал из ALT Linux Wiki
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

Программы для управления доменом.

Программа Пакет Назначение
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 Домашний каталог
mail Адрес электронной почты
o Организация
ou Подразделение
title Должность
telephoneNumber Телефон
mobile Мобильный телефон
departmentNumber Отдел
postalAddress Адрес
jpegPhoto Файл с фотографией
Группы
cn Название группы
gidNumber Идентификатор группы (число)
memberUid Имя члена группы
Рабочие станции  с версии 0.8.0 
uid Имя компьютера (доверенные заканчиваются символом «$»)
uidNumber Идентификатор рабочей станции
Примечание: В веб-интерфейсе фотография растягивается или уменьшается до 94x94 пикелей