(参考)http://d.palmtb.net/2011/08/15/150308.html
項目 | 内容 | |
---|---|---|
URL | http://server1.hoge.local/phpldapadmin_org | http://server1.hoge.local/pwmgr |
用途 | OpenLDAPの管理全般 | エンドユーザ向けパスワード変更 |
コンテンツ | オリジナルのまま | パスワード変更に必要なものに絞込み |
コンテンツパス | /usr/share/phpldapadmin | /usr/share/phpldapadmin_pwmgr |
設定用ディレクトリ | /etc/phpldapadmin | /etc/phpldapadmin_pwmgr |
# yum search phpldapadmin : 警告: 一致するものが見つかりません: phpldapadmin # yum install epel-release : インストール: epel-release.norach 0:7-9 完了しました!
# yum install phpldapadmin : インストール: phpldapadmin.norarch 0:1.2.3-10.el7 依存性関連をインストールしました: : 完了しました!
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 :
# cp -rp /etc/phpldapadmin /etc/phpldapadmin_pwmgr
# cp -rp /usr/share/phpldapadmin /usr/share/phpldapadmin_pwmgr
# rm /usr/share/phpldapadmin_pwmgr/config # ln -s /etc/phpldapadmin_pwmgr /usr/share/phpldapadmin_pwmgr/config
# # Web-based tool for managing LDAP servers # Alias /phpldapadmin_org /usr/share/phpldapadmin/htdocs Alias /ldapadmin_org /usr/share/phpldapadmin/htdocs <Directory /usr/share/phpldapadmin/htdocs> <IfModule mod_authz_core.c> # Apache 2.4 #Require local Require ip 192.168.200.0/24 Require ip (administrator's office lan)/24 </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> Alias /pwmgr /usr/share/phpldapadmin_pwmgr/htdocs <Directory /usr/share/phpldapadmin_pwmgr/htdocs> <IfModule mod_authz_core.c> # Apache 2.4 #Require local Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>
# systemctl restart httpdブラウザからhttp://server1.hoge.local/phpldapadmin, http://server1.hoge.local/pwmgrにアクセスするとphpLDAPadminの画面応答があるはず。
$config->custom->commands['cmd'] = array( : ); $config->custom->command['script'] = array( : );
例えば、インポート(フロッピーのアイコン)のリンク先は次のとおり。
http://server1.hoge.local/pwmgr/cmd.php?cmd=import_form&server_id=1
上記から、cmdのarray、scriptのarrayそれぞれで、「'import_form' => false」と設定することで無効化できる。設定→画面リロード、の繰り返しで絞り込みが進められる。設定例は以下。
$config->custom->commands['cmd'] = array( 'add_attr_form' => false, 'add_oclass_form' => false, 'add_value_form' => false, 'compare' => false, 'compare_form' => false, 'create' => false, 'create_form' => false, 'delete' => false, 'delete_attr' => false, 'delete_form' => false, 'entry_internal_attributes_show' => true, 'entry_refresh' => true, 'export' => false, 'export_form' => false, 'import' => false, 'import_form' => false, 'login' => true, 'login_form' => true, 'logout' => true, 'mass_delete' => false, 'mass_edit' => false, 'mass_update' => false, 'modify_member_form' => false, 'monitor' => false, 'purge_cache' => true, 'query_engine' => false, 'rename' => false, 'rename_form' => false, 'oslinks' => false, 'schema' => false, 'server_info' => false, 'show_cache' => false, 'show_internal_attrs' => false, 'switch_template' => false, 'template_engine' => true ); $config->custom->commands['script'] = array( 'add_attr_form' => false, 'add_oclass_form' => false, 'add_value_form' => false, 'collapse' => true, 'compare' => false, 'compare_form' => false, 'copy' => false, 'copy_form' => false, 'create' => false, 'create_confirm' => false, 'delete' => false, 'delete_attr' => false, 'delete_form' => false, 'draw_tree_node' => true, 'expand' => true, 'export' => false, 'export_form' => false, 'import' => false, 'import_form' => false, 'login' => true, 'logout' => true, 'login_form' => true, 'mass_delete' => false, 'mass_edit' => false, 'mass_update' => false, 'modify_member_form' => false, 'monitor' => false, 'purge_cache' => true, 'query_engine' => false, 'rename' => false, 'rename_form' => false, 'oslinks' => false, 'rdelete' => true, 'refresh' => true, 'schema' => false, 'server_info' => false, 'show_cache' => false, 'show_internal_attrs' => false, 'template_engine' => true, 'update_confirm' => true, 'update' => true );
$config->custom->appearance['hide_template_warning'] = true;
$config->custom->appearance['tree_filter'] = '(&(ou=People)(objectClass=inetOrgPerson));
$config->custom->appearance['hide_attrs'] = array('uid','uidNumber','gidNumber','homeDirectory','loginShell','objectClass','sshPublicKey','gecos','cn','sn','givenName','mail','o');
$servers->setValue('server', 'name', 'hoge.local');
$servers->setValue('server', 'anon_bind', false);
cd /usr/share/phpldapadmin_pwmgr/locale/ja_JP/LC_MESSAGES cp -p messages.mo messages.mo.org msgunfmt messages.mo -o /tmp/messages.po次のように修正
# vi /tmp/messages.po サーバに認証 → サーバ認証 左へのメニューを使用して操作します → 左のメニューを使用して操作します 飛ばす → skip オブジェクト更新 → 更新 これらの変更しますか? → 変更しますか?
msgfmt /tmp/messages.po -o ./messages.mo
# diff /usr/share/phpldapadmin_pwmgr/lib/PageRender.php /usr/share/phpldapadmin/lib/PageRender.php 261,293d260 < # ----- パスワード強度チェック 開始 ------------------ < # 現ハッシュ値の控え < $oval = array(); < $oval = $attribute->getOldValues(); < // userPassword 属性はハッシュ値一つだけ < // printf('%s', count($oval)); < // printf('%s', $oval[0]); < < # パスワードの適切さ(強度など)フラグ < $suitablePasswd = true; < < # 最小文字数 < $passwdMinLen = 6; < < # NG パスワードリスト < $ngPasswds = ["password", "123456", "000000", "redmine"]; < < if (strlen($passwordvalue) < $passwdMinLen) { < system_message(array( < 'title'=>_('最小文字数未満'), < 'body'=>sprintf('最小文字数 %s 文字未満です。',$passwdMinLen), < 'type'=>'warn')); < $suitablePasswd = false; < } elseif (in_array($passwordvalue, $ngPasswds)) { < system_message(array( < 'title'=>_('不適切なパスワード'), < 'body'=>sprintf('%s は不適切なパスワードです。', $passwordvalue), < 'type'=>'warn')); < $suitablePasswd = false; < } < < # ----- パスワード強度チェック 終了 ------------------ < 323,332c290 < # 不適切なパスワードのときは、便宜的に入力値に < # 現ハッシュ値をセットし、 update_confirm.php の < # if (count($request['template']->getLDAPmodify(true))) { < # が false になるようにし < # 本来変更なし時の画面遷移処理ブロックを間借りして < # 戻る画面に移る < if ($suitablePasswd !== true) < $vals[$i] = $oval[0]; < else < $vals[$i] = pla_password_hash($passwordvalue,$enc); --- > $vals[$i] = pla_password_hash($passwordvalue,$enc); 352d309 <
# diff /usr/share/phpldapadmin_pwmgr/htdocs/update_confirm.php /usr/share/phpldapadmin/htdocs/update_confirm.php 233,236d222 < < // 最初のフォームで更新を押したものの、現行の値から変化がないときに、 < // 変更無いよ、と表示しつつ、前のフォームに戻るリンクを表示、が本来。 < 241,242c227 < // echo _('You made no changes'); < echo _('変更が無いか、パスワードが不適切です。'); --- > echo _('You made no changes');