Calculate 2 - Управление учетными записями LDAP сервера

LDAP (Lightweight Directory Access Protocol) предоставляет богатые возможности по хранению учетных записей пользователей. Его могут использовать различные сервисы, такие как Mail, FTP, Jabber и прочие для авторизации пользователей. Администрировать учетные записи напрямую, используя команды доступа к LDAP достаточно сложно. Для этого существуют различные приложения, например smbldap-tools.

Здесь я хочу рассказать об утилитах Calculate 2, распространяемых под свободной лицензией Apache 2 и входящих в дистрибутив Calculate Directory Server.

В настоящее время Calculate 2 можно установить только на Gentoo-based дистрибутив. Утилиты включают следующие пакеты: calculate-client, calculate-server и calculate-lib. За настройку LDAP отвечает пакет calculate-server.

Последующие действия следует производить на тестовом сервере. Так как вся информация LDAP серера при настройке будет удалена при настройке сервисов и отказаться от внесенных изменений будет невозможно.

Установка calculate-server выполняется из оверлея Calculate, подключить который можно через пакет layman, выполнив:

layman -a calculate

Далее установим calculate-server. По зависимостям пакет потребует установить такие программы, как: postfix, dovecot, proftpd, ejabberd и разумеется openldap.

Для настройки LDAP сервера достаточно выполнить следующую команду:

#cl-setup ldap
* WARNING: Executing of the program will change the configuration files and database of LDAP service.
If you are ready to continue executing the program, input 'yes', if not 'no': yes
* Erased LDAP Database ... [ ok ]
* Added ldif file ... [ ok ]
* LDAP service configured ... [ ok ]

Команда выполнит базовые настройки конфигурационных файлов, создаст структуру базы в LDAP.

Чтобы пользователи LDAP были видны в системе всеми сервисами, выполните следующую команду:

#cl-setup unix
* WARNING: Executing of the program will change the configuration files and database of LDAP service.
If you are ready to continue executing the program, input 'yes', if not 'no': yes
* Added ldif file ... [ ok ]
* Unix service configured ... [ ok ]

В результате выполнения этой команды настроится /etc/nsswitch.conf, /etc/pam.d/system-auth и другие конфигурационные файлы.

Теперь попробуйте создать Unix пользователя с группой, выполнив:

#cl-groupadd manager unix
* Added group in Unix service ...

#cl-useradd -g manager -p alex unix
New password:
Retype new password:
* Added user in Unix service ...

Проверить наличие пользователя в системе можно выполнив команду id alex, либо при помощи команды cl-info -U alex unix.

#id alex
uid=1000(alex) gid=1000(manager) groups=1000(manager)

#cl-info -U alex unix
Information about user alex for service Unix
+----------------------+----------------+
| Field                | Value          |
+----------------------+----------------+
| ID                   | 1000           |
| Login                | alex           |
| Name                 | Calculate user |
| Lock                 | No             |
| Visible              | No             |
| Primary group        | manager        |
| Supplementary groups | manager        |
| Home directory       | /home/alex     |
| Password             | Yes            |
| Last change password | 24.05.2009     |
| Jabber ID            | No             |
| Mail                 | No             |
+----------------------+----------------+

Для управления Unix учетными записями, утилите cl-useradd доступны следующие параметры:

-b, --base-dir BASE_DIR        base directory for the new user account home
                               directory
-c, --comment COMMENT          set the COMMENT field for the new user account
-d, --home-dir HOME_DIR        home directory for the new user account
-g, --gid GROUP                force use GROUP for the new user account
-G, --groups GROUPS            list of supplementary groups for the new user
                               account
-k, --skel SKEL_DIR            specify an alternative skel directory
-m, --create-home              create home directory for the new user account
-p, --password                 use password for the user account (from dialog)
-P                             use password for the user account (from
                               standard input)
-s, --shell SHELL              the login shell for the new user account
-u, --uid UID                  force use the UID for the new user account
-v, --visible                  the new user account is visible (default -
                               invisible)

Команды управления учетными записями LDAP аналогичны стандартным unix командам как синтаксисом, так и поддерживаемым параметрам: cl-useradd, cl-usermod, cl-userdel, cl-groupadd, cl-groupmod, cl-groupdel, cl-passwd.

Разобраться в них не составит труда. Расширенную информацию по учетным записям пользователей и групп можно получить командой cl-info.

Вы могли заметить, что при добавлении пользователя мы использовали в конце команды параметр unix. Вместо него может быть значение samba, mail, jabber, ftp и proxy.
Фактически используя одни и те же команды, вы управляете пользователями различных сервисов.

Надо бы перевести параметры управления unix записями…