Инструменты пользователя

Инструменты сайта


phpldapadmin:phpldapadmin

phpLDAPAdmin

phpLDAPAdmin (PLA) — веб интерфейс для управления каталогом LDAP, написан на PHP, работает на сервере Apache.

http://www.phpldapadmin.org

http://phpldapadmin.sourceforge.net

phpLDAPadmin

Работа с phpLDAPAdmin из пакетной базы Debian

Установка

  • Папка для установки: /opt/phpldapadmin/
  • HTTP сервер: 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 сервера

  1. Нужно создать файл: /opt/phpldapadmin/config/apache.conf
  2. Выполнить следующие действия:
    phpldapadmin.sh
    #!/bin/bash
     
    # Создаем символическую ссылку
    ln -s /opt/phpldapadmin/config/apache.conf /etc/apache2/sites-available/phpldapadmin.conf
    # Разрешаем сайт
    a2ensite phpldapadmin.conf
    # Перезапуск 
    service apache2 reload

Настройка

config.php

Пример файла config.php

Пример файла config.php

config.php
<?php
 
$config->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);

Лимит поиска (умолчание):

lib/config_default.php
$this->default->search['size_limit'] = array(
        'desc'=>'Limit the size of searchs on the search page',
        'default'=>50);

меняем 50 на 0.

Шаблоны

Для создания объектов

Для изменения объектов

Папка templates/modification

:!: В текущей версии 1.2.3 их неудобно использовать.

Предопределенные запросы

Перевод

FIXME

messages.po

Путь к файлу: /opt/phpldapadmin/locale/ru_RU/LC_MESSAGES/

С 2016-03-22 этот вариант перевода доступен в официальной базе переводов.

Отображение русских символов в именах объектов

В дереве объектов и их заголовке русские символы не отображаются.

Пример: 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: functions.php.diff

Применение:

patch functions.php <functions.php.diff

С 2016-10-30 эти исправления внесены в код в официльном репозатарии.

Ссылки

phpldapadmin/phpldapadmin.txt · Последние изменения: 2024-02-07 11:11 — GreyWolf