LDAPのパスワードをWEBブラウザから変更する
今回はuserminを使ってWEBブラウザからパスワードを変更出来るようにします。
openldapのパスワードを変更することを前提としています。
もちろんopenldapが設定されており稼働していることも前提です。
userminのダウンロードは以下
現在の最新版は usermin-1.260.tar.gz でした。
これを解凍してインストールします。
# tar zxvf usermin-1.260.tar.gz -C /usr/local/src/
# cd /usr/local/src/usermin-1.260
# ./setup.sh
Config file directory [/etc/usermin]:
Log file directory [/var/usermin]:/var/log/usermin
Full path to perl (default /usr/bin/perl):
Web server port (default 20000):
ログファイルは/var/log配下がいいので変更しましたが
それ以外はデフォルトにしました。
次に日本語表示に対応させます。
# vi /etc/usermin/config
---
lang=ja_JP.euc
---
以下のファイルも関係しますので適宜修正しましょう。
/usr/local/src/usermin-1.260/changepass/lang/ja_JP.euc
/usr/local/src/usermin-1.260/changepass/lang/en
/usr/local/src/usermin-1.250/ulang/ja_JP.euc
使う機能をパスワードだけにする場合は以下のファイルを編集します。
# vi /etc/usermin/webmin.acl
---
user: changepass
---
また,rootで認証できないように設定します。
# vi /etc/usermin/miniserv.conf
---
denyusers=root
---
pamを利用してldapのパスワードで認証し,変更出来るようにします。
まずはpamの設定ファイルを以下のように作ります。
# vi /etc/pam.d/usermin
---
#%PAM-1.0
auth required pam_nologin.so
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
---
プログラムの修正も必要です。
以下のファイルを修正します。
# /usr/local/src/usermin-1.260/changepass/changepass.cgi
---
### if ($msg =~ /old|current/i) {
if ($msg =~ /login/) {
---
上記箇所をコメントアウトして書き直します。
cgiファイルの下から15行目あたりかと思います。
さらにPERLのモジュールが必要です。
モジュールはNet::SSLeay.pmとAuthen::PAMです。
このモジュールをインストールするにはPERLのシェルを動かします。
しかしCentOS4にはncftpgetコマンドが入っていないのであらかじめ
インストールしておきます。
http://www.ncftp.com/download/
そして以下のコマンドを入力します。
# perl -MCPAN -e shell
はじめはいろいろ聞いてくるがデフォルトでよさそうです。
ftpの指定は/usr/bin/ftpにしました。
cpan> install Net::SSLeay
cpan> install Authen::PAM
userminのページからldapパスワードを変更するには
以下のファイルを編集する必要があります。
# vi /etc/usermin/changepass/config
---
passwd_cmd=
###smbpasswd=smbpasswd
---
sambaは使っていないのでコメントアウトしました。
自動起動の設定も行っておきましょう。
スクリプトファイルがあるのでそれをコピーします。
# cp /usr/local/src/usermin-1.260/usermin-init /etc/init.d/usermin
次にシステムに認識させます。
# chkconfig --add usermin
# chkconfig --list usermin
usermin 0:off 1:off 2:off 3:on 4:off 5:on 6:off
ランレベル3と5で自動起動するようになりました。
私は2を削ったので3と5だけです。