Linuxサーバ奮戦記 ---ユーザのパスワード変更---     >>TOP


  1. ユーザのパスワード変更-1  17Dec2006

    メールサーバでユーザにメールアカウントを作成し,利用して頂くには最初仮パスワードを発行して後でユーザ自身でパスワードを変更してもらうのがよいと思い,WEBブラウザ上から変更できないかとスクリプトを探していたがなかなか敷居が高い。
    sshでログインしてもらうやり方もあるがクライアント側にPutty等のソフトをインストールしなければならないし,ポートも開ける必要もありセキュリティ上あまりよくない気がした。
    スクリプトを探して試した結果,何とかユーザのパスワード変更ができたのでメモすることに(とりあえず)。
    参考URL:http://www.linuxworld.jp/rendou/2003/200308_01.html
    参考スクリプト:http://www.linuxworld.jp/rendou/2003/09/newpasswd

    自分のサーバ環境は Fedora core 6 で行った。
    まずは,準備として perl-suidperl と perl-Authen-PAM をインストールする必要がある。

    perl-suidperlのインストール(/usr/local/srcで作業)

    #cd /usr/local/src
    #wget http://ftp.riken.jp/Linux/fedora/core/6/i386/os/Fedora/RPMS/perl-suidperl-5.8.8-10.i386.rpm
    #rpm -Uvh perl-suidperl-5.8.8-10.i386.rpm

    perl-Authen-PAMのインストール(/usr/local/srcで作業)
    #cd /usr/local/src
    #wget
    http://ftp.riken.jp/Linux/dag/fedora/6/en/i386/dries/RPMS/perl-Authen-PAM-0.16-1.2.fc6.rf.i386.rpm

    #rpm -Uvh perl-Authen-PAM-0.16-1.2.fc6.rf.i386.rpm

    newpasswdのプログラムを変更
    newpasswd をテキストでダウンロードし,newpasswd.cgi に変更しアップロード。
    ここではホームディレクトリにアップロードすることにする。

    ソースを環境に合わせ変更
    $homepage = "/"; # ホームページ
    $myself = "/newpasswd.cgi"; # このCGIのURL

    ファイルのオーナとパーミッションを設定
    #chown root:root newpasswd.cgi
    #chmod 4555 newpasswd.cgi

    PAMファイルを設定
    newpasswdのソースのコメットの設定ではうまく行かなかったので以下の内容に書換えた。
    #vi /etc/pam.d/newpasswd
    #%PAM-1.0
    auth required pam_securetty.so
    auth required pam_unix.so shadow nullok
    auth required pam_nologin.so
    account required pam_unix.so
    password required pam_cracklib.so retry=3
    password required pam_unix.so shadow nullok use_authtok
    session required pam_unix.so


    WEBブラウザからnewpasswd.cgiにアクセスすると以下の様に表示され,変更手続きをする。



    簡単なパスワードだと変更されない。



    うまく変更されれば以下のようになる。


    ユーザ名が長すぎた場合(10文字以上)パスワードが変更できないので,ユーザ名が長くても良い様に変更が必要になるかもしれません。
    変更行は以下の部分です。
    } elsif (length($P::username) < 2 || length($P::username) > 10) { # ユーザー名の入力チェック


  2. ユーザのパスワード変更-2  27Dec2008

    ここ(http://oku.edu.mie-u.ac.jp/~okumura/cplusplus/passwd.html)にスクリプトが出てました。 Fedora 8 ではコンパイルできたが,Fedora 9 では失敗してしまう。何故かは判らない。


  3. ユーザのパスワード変更-3  28Dec2008
    Usermin(http://www.webmin.com/usermin.html)で入手できるプログラムをインストールすることでも可能となる。
    WEBブラウザからユーザのパスワードが変更可能となる。デフォルトでは20000ポートを使う。

    # tar zxvf usermin-1.370.tar.gz
    # cd usermin-1.370
    # ./setup.sh
    ***********************************************************************
    * Welcome to the Usermin setup script, version 1.370 *
    ***********************************************************************
    Usermin is a web-based interface that allows Unix-like operating
    systems and common Unix services to be easily administered.

    Installing Usermin in /usr/local/src/usermin-1.370 ...

    ***********************************************************************
    Usermin uses separate directories for configuration files and log files.
    Unless you want to run multiple versions of Usermin at the same time
    you can just accept the defaults.

    Config file directory [/etc/usermin]:
    Log file directory [/var/usermin]:

    ***********************************************************************
    Usermin is written entirely in Perl. Please enter the full path to the
    Perl 5 interpreter on your system.

    Full path to perl (default /usr/bin/perl):

    Testing Perl ...
    Perl seems to be installed ok

    ***********************************************************************
    Operating system name: Redhat Linux
    Operating system version: Fedora 8

    ***********************************************************************
    Usermin uses its own password protected web server to provide access
    to the administration programs. The setup script needs to know :
    - What port to run the web server on. There must not be another
    web server already using this port.
    - If the webserver should use SSL (if your system supports it).

    Web server port (default 20000):
    Use SSL (y/n): y

    とりあえずこれでインストール完了。
    https://192.168.2.12:20000/ とアクセス(例:インストールしたサーバのIP:192.168.2.12)すると以下の様な表示となる。



    登録されているユーザでログインし,
    Login => Change Password でパスワードを変更する。



    通常はセキュリティ上,20000ポートを塞いでおき必要時に開ける様にしておいたほうが良いかもしれない。