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.
Фактически используя одни и те же команды, вы управляете пользователями различных сервисов.