====== phpLDAPAdmin ====== {{:phpldapadmin:phpldapadmin_logo.jpg|}} phpLDAPAdmin (PLA) — веб интерфейс для управления каталогом [[ldap:ldap|LDAP]], написан на [[php:php|PHP]], работает на сервере [[apache:apache|Apache]]. http://www.phpldapadmin.org http://phpldapadmin.sourceforge.net [[github>leenooks/phpLDAPadmin|phpLDAPadmin]] [[phpldapadmin:debian_packages|Работа с phpLDAPAdmin из пакетной базы Debian]] ====== Установка ====== * Папка для установки: ''/opt/phpldapadmin/'' * HTTP сервер: [[apache:apache|Apache]] Нужно скачать актуальный архив с нужной версией c https://github.com/leenooks/phpLDAPadmin Последнюю версию можно скачать так: wget https://github.com/leenooks/phpLDAPadmin/archive/master.zip ===== Установка необходимых пакетов ===== apt-get install apache2 php php-cgi libapache2-mod-php php-ldap php-xml ===== Распаковка дистрибутива ===== # Распаковка дистрибутива в нужную папку unzip phpLDAPadmin-master.zip -d /opt # Переносим файлы и папки в папку для установки mv /opt/phpLDAPadmin-master /opt/phpldapadmin ===== Настройка HTTP сервера ===== - Нужно создать файл: {{:phpldapadmin:apache.conf|/opt/phpldapadmin/config/apache.conf}} - Выполнить следующие действия: #!/bin/bash # Создаем символическую ссылку ln -s /opt/phpldapadmin/config/apache.conf /etc/apache2/sites-available/phpldapadmin.conf # Разрешаем сайт a2ensite phpldapadmin.conf # Перезапуск service apache2 reload ====== Настройка ====== ===== config.php ===== custom->appearance['language'] = 'ru_RU'; $config->custom->appearance['custom_templates_only'] = true; $config->custom->appearance['disable_default_template'] = false; $config->custom->appearance['hide_template_warning'] = true; $config->custom->appearance['minimalMode'] = false; $config->custom->appearance['friendly_attrs'] = array( 'sambaSID' => 'Уникальный идентификатор Samba', 'sambaDomainName' => 'Имя домена', 'sambaMaxPwdAge' => 'Максимальное время жизни пароля, в секундах (-1=Выкл. 0=Вкл.)', 'sambaMinPwdAge' => 'Минимальное время жизни пароля, в секундах', 'sambaMinPwdLength' => 'Минимальная длина пароля', 'sambaPwdHistoryLength' => 'Записывать историю паролей (0=Нет истории)', 'sambaLogonToChgPwd' => 'Force user to log on to change password (0=Нет, 2=Да)', 'sambaRefuseMachinePwdChange' => 'Запретить рабочим станциям менять пароль (0=Запретить)', 'sambaForceLogOff' => 'Отключать пользователей после допустимых часов работы (-1=Нет, 0=Да)', 'sambaLockoutThreshold' => 'Число неудачных попыток перед блокировкой', 'sambaLockoutDuration' => 'Длительность блокировки, в минутах', 'sambaLockoutObservationWindow' => 'Сброс блокировки после интервала, в минутах', 'sambaAlgorithmicRidBase' => 'Число с которого должен начать работу алгоритм samba RID (1000)', 'sambaNextUserRid' => 'Следующий номер относительного идентификатора RID для пользователя', 'sambaNextGroupRid' => 'Следующий номер относительного идентификатора RID для группы', 'sambaNextRid' => 'Следующий номер относительного идентификатора RID для других ?', 'sambaAcctFlags' => 'Samba: флаги ', 'sambaKickoffTime' => 'Samba: Рабочее время', 'sambaLogonScript' => 'Samba: Сценарий входа', 'sambaNTPassword' => 'Samba: Пароль NT', 'sambaLMPassword' => 'Samba: Пароль LM', 'sambaPrimaryGroupSID' => 'Samba: Основная группа', 'sambaPwdLastSet' => 'Samba: Дата изменения пароля (секунд с 1970-01-01)', 'sambaGroupType' => 'Samba: тип группы', 'sambaUserWorkstations' => 'Samba: список доступных компьютеров', 'sambaPwdCanChange' => 'Срок действия пароля (2147483647=не ограничен)', 'dhcpHWAddress' => 'DHCP: MAC адрес', 'dhcpStatements' => 'DHCP: Объявления', 'dhcpPrimaryDN' => 'DHCP: Основной сервер', 'dhcpRange' => 'DHCP: Диапазон', 'dhcpNetMask' => 'DHCP: Маска сети', 'dhcpComments' => 'DHCP: Коментарии', 'dhcpOption' => 'DHCP: Параметры', 'uidNumber' => 'Уникальный идентификатор пользователя', 'gidNumber' => 'Уникальный идентификатор группы', 'gecos' => 'Вспомогательная информация', 'mailQuotaSize' => 'Размер почтовой квоты (Мббайт)', 'maildrop' => 'Уникальный адрес внутри сервера', 'mailRoutingAddress' =>'Адрес доставки почты', 'displayName' => 'Отображаемое имя', 'description' => 'Описание', 'givenName' => 'Имя', 'sn' => 'Фамилия', 'cn' => 'Общее имя', 'homeDirectory' => 'Домашняя папка', 'loginShell' => 'Командная оболочка', 'member' => 'Член группы', 'o' => 'Организация (o)', 'ou' => 'Отдел (ou)', 'memberUid' => 'Члены группы', 'objectClass' => 'Классы объекта (objectClass)', 'initials' => 'Отчество', 'facsimileTelephoneNumber' => 'Fax', 'gid' => 'Group', 'mail' => 'Email', 'telephoneNumber' => 'Телефон (telephoneNumber)', 'uid' => 'Уникальное имя пользователя (uid)', 'userPassword' => 'Password' ); $config->custom->appearance['attr_display_order'] = array( 'sambaDomainName', 'sambaMaxPwdAge', 'sambaMinPwdAge', 'sambaMinPwdLength', 'sambaPwdHistoryLength', 'sambaLogonToChgPwd', 'sambaRefuseMachinePwdChange', 'sambaForceLogOff', 'sambaLockoutThreshold', 'sambaLockoutDuration', 'sambaLockoutObservationWindow', 'sambaAlgorithmicRidBase', 'sambaNextUserRid', 'sambaNextGroupRid', 'sambaNextRid', 'o', 'ou', 'dc', 'givenName', 'sn', 'initials', 'cn', 'displayName', 'uid', 'homeDirectory', 'description', 'gecos', 'loginShell', 'userPassword', 'mail', 'maildrop', 'mailQuotaSize', 'uidNumber', 'gidNumber', 'sambaSID', 'sambaPrimaryGroupSID', 'sambaAcctFlags', 'sambaKickoffTime', 'sambaLogonScript', 'sambaNTPassword', 'sambaLMPassword', 'sambaPwdLastSet', 'sambaUserWorkstations', 'memberUid', 'member', 'sambaGroupType', 'objectClass' ); $servers = new Datastore(); // Server 1 $servers->newServer('ldap_pla'); $servers->setValue('server','name','ldap0'); $servers->setValue('server','host','ldap0'); $servers->setValue('login','bind_id','cn=admin,dc=domain'); // Server 2 $servers->newServer('ldap_pla'); $servers->setValue('server','name','ldap'); $servers->setValue('server','host','ldap'); $servers->setValue('login','bind_id','cn=admin,dc=domain'); $servers->setValue('appearance','pla_password_hash','md5'); $servers->setValue('auto_number','enable',true); $servers->setValue('auto_number','mechanism','search'); ?> Отключение анонимного входа: $servers->setValue('login','anon_bind',false); Лимит поиска (умолчание): $this->default->search['size_limit'] = array( 'desc'=>'Limit the size of searchs on the search page', 'default'=>50); меняем 50 на 0. ====== Шаблоны ====== ===== Для создания объектов ===== [[phpldapadmin:templates:creation:creation|Для создания объектов]] ===== Для изменения объектов ===== Папка ''templates/modification'' :!: В текущей версии 1.2.3 их неудобно использовать. ====== Предопределенные запросы ====== [[phpldapadmin:queries:queries|Предопределенные запросы]] ====== Перевод ====== FIXME {{:phpldapadmin:messages.po|messages.po}} Путь к файлу: ''/opt/phpldapadmin/locale/ru_RU/LC_MESSAGES/'' С 2016-03-22 этот вариант перевода доступен в [[https://translations.launchpad.net/phpldapadmin/1.2.x/+pots/phpldapadmin/ru|официальной базе переводов]]. ====== Отображение русских символов в именах объектов ====== В дереве объектов и их заголовке русские символы не отображаются. Пример: ''ou=тест'' отображается как: ou=''.chr(hexdec('D1')).''''.chr(hexdec('82')).''''.chr(hexdec('D0')).''''.chr(hexdec('B5')).''''.chr(hexdec('D1')).''''.chr(hexdec('81')).''''.chr(hexdec('D1')).''''.chr(hexdec('82')).'' Для исправления ошибки нужно исправить ''function dn_unescape($dn)'' в файле ''lib/functions.php'' Заплатка для версии 1.2.3: {{:phpldapadmin:functions.php.diff|functions.php.diff}} Применение: patch functions.php С 2016-10-30 эти исправления внесены в код в [[https://github.com/leenooks/phpLDAPadmin|официльном репозатарии]]. ====== Ссылки ====== https://wiki.debian.org/PhpLdapAdmin [[http://phpldapadmin.sourceforge.net/wiki/index.php/Templates|Templates]] [[http://phpldapadmin.sourceforge.net/wiki/index.php/Category:TemplateValueFunctions|Template Value Functions]] [[http://phpldapadmin.sourceforge.net/wiki/index.php/LDAP_server_definitions|LDAP server definitions]] [[http://phpldapadmin.sourceforge.net/wiki/images/d/d4/Logo.jpg|Логотип]] {{tag>Admin LDAP HTTP phpLDAPAdmin on_github}}