概要と動作イメージ
 Apache HTTPサーバがBASIC認証に使用するユーザー認証ファイル(.htpasswdファイル)を編集する簡単なCGIスクリプトです。あまりたくさんのユーザー管理には向きません。
動作環境
Perl5以上およびPerl標準モジュール群がインストールされたサーバで動作します。
利用許諾
いわゆるX11ライセンス(MITライセンス)の下で自由にご利用いただけます。
利用許諾はバージョン1.5からようやく「明記」しました。ほったらかしにしていてすみませんでした。
ダウンロード
ダウンロード後、ファイル名を "htpasswd.cgi" などにリネームしてください。
- htpasswd.cgi-1.5 - バージョン1.5 (2007-04-18)
設置方法
1. 初期設定
スクリプトをテキストエディタで開き、1行目のperlのパスおよび「初期設定」のセクションを書き換えます。設定必須なのは、管理者パスワード($ADMIN_PASSWD)と、ユーザー認証ファイルのパス($PASSWD_FILE)だけでしょう。多くのUNIX系サーバでは、これだけで正常にユーザーの追加・削除、および認証が行えると思います。
Windowsサーバでは、crypt()によって暗号化されたパスワードがサポートされないため、htpasswdコマンドを使う設定($USE_HTPASSWD = 1;)にするか、パスワードを暗号化しない設定($USE_PLAINTEXT = 1;)にする必要があります。htpasswdコマンドのパス($HTPASSWD)はプロバイダのサポート等に問い合わせてください。
2. サーバーに設置する
外部からスクリプトにアクセスし難いように設置してください。URL非公開のディレクトリや、別途認証がかかったディレクトリに設置するのが良いでしょう。また、ユーザー認証ファイルも外部からアクセスできる場所には置くべきではありません。パーミッションはスクリプト本体を705、ユーザー認証ファイルを606にします。
- user
  - public_html
    - sEcReTdIr
      - htpasswd.cgi
 
- members
      - .htaccess
 
 
- sEcReTdIr
      
- .htpasswd
 
- public_html
    
| ファイル等 | パーミション | 解説 | 
|---|---|---|
| public_html | 公開ディレクトリ | |
| sEcReTdIr | 701 | 任意の秘密の(URI非公開)ディレクトリ | 
| htpasswd.cgi | 705 | スクリプト本体 | 
| members | 認証をかけたいディレクトリ | |
| .htaccess | ここに認証の設定 | |
| .htpasswd | 606 | ユーザ認証ファイル | 
認証をかけたいディレクトリには、例えば以下のような内容の.htaccessファイルを置きます。
AuthType Basic
AuthName "Members' area"
AuthUserFile /home/foo/.htpasswd  # サーバ内パスは要確認
Require valid-user
更新履歴
更新日と公開日とが数日ずれている場合があります。
| 更新日 | バージョン | 更新内容 | 
|---|---|---|
| 2007-04-18 | 1.5 | 
 | 
| 2004-12-05 | 1.4 | 
 | 
| 2004-07-30 | 1.3 | 
 | 
| 2004-07-13 | 1.2 | 
 | 
| 2004-05-13 | 1.1 | 
 |