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

Материал из ALT Linux Wiki

Перейти к: навигация, поиск

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

Программа Пакет Назначение
ldap-initldap-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-cmdlinealteratorВызов методов бэкендов модулей Alterator
system-authalterator-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Домашний каталог
mailАдрес электронной почты
ouПодразделение
titleДолжность
telephoneNumberТелефон
mobileМобильный
departmentNumberОтдел
postalAddressАдрес
Группы
cnНазвание
gidNumberИдентификатор группы
memberUidИмя члена группы
Рабочие станции  с версии 0.8.0 
uidИмя компьютера (доверенные с символом $ на конце)
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 <группа[,...]] [-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 
Удалить пользователей по списку, разделённого запятыми, из группы
<режим>
режим изменений.
Режим Описание
addДобавляет пользователей в группу
replaceИзменяет состав группы (удаляет всех пользователей и заводит новый состав)
delУдаляет пользователей из группы
<имя группы>
имя группы домена.

При указании параметра -m или -x указывать режим не нужно.

Добавляемые или удаляемые поля передаются через стандартный поток ввода в виде 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
dhcpd:OK (TEST.ALTLINUX)
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
 
Личные инструменты