Apache:htpasswd コマンド
技術ドキュメント目次 -> Apache -> htpasswd コマンド本技術ドキュメントは、2002~2004年頃に作成したものが多いです。
内容が古くなっていることもあるかと思いますが、ご了承ください。
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。
◆ はじめに
Basic認証のパスワードファイルを作成するときに使用する、htpasswd コマンドについて解説します。
なお、
htpasswd コマンドは、
(Apache のディレクトリ)/bin/htpasswd として自動的にインストールされます。
◆ Basic認証の設定
まず、Apache で Basic認証を行うための設定方法をおさらいします。<Directory ****>~</Directory>での指定や、
.htaccess に次のように指定することで、
指定した領域を Basic認証の対象エリアにすることができます。
AuthUserFile /usr/local/apache/auth/.htpasswd AuthName "Input ID/PW" AuthType Basic require valid-user |
htpasswd コマンドは、
上記の AuthUserFile で指定しているパスワードファイルを作成します。
◆ htpasswd コマンドの実行方法
コマンドライン引数は、次のような構文で指定します。
htpasswd [-cmdps] passwordfile username htpasswd -b[cmdps] passwordfile username password htpasswd -n[mdps] username htpasswd -nb[mdps] username password |
オプションの意味は、それぞれ次のようになります。
-c 新しいパスワードファイルを作成します。 もし、同名のパスワードファイルがすでに存在する場合は、 既存の内容が削除されます。 -n どのような結果になるかのみを標準出力して終了します。 パスワードファイルを変更しません(テスト実行用)。 -m パスワードをファイルに書き込む際、MD5 でハッシュします。 -d パスワードをファイルに書き込む際、CRYPT でハッシュします(デフォルト)。 -p パスワードをファイルに書き込む際、ハッシュしないで、プレーンなテキストのまま書き込みます。 -s パスワードをファイルに書き込む際、SHA でハッシュします。 -b パスワードを、対話式入力ではなくて、コマンドライン引数として指定できるようにします。 |
なお、
-d(デフォルト)を用いるときは、
長いパスワード(8文字以上)を使用しないほうが懸命です。
ハッシュのアルゴリズムの制約により、
8文字目以降の文字列は無視されてしまうからです。
たとえば、
$ htpasswd -bdc ..../.htpasswd user passwordABCDE
として作成したパスワードファイルを使った認証エリアへは、
ID/PW に user/password と入力することでアクセスできてしまいます。
長いパスワードを使用したいときは、-mオプションなどを使用してください。
また、
-b オプションは、
パスワードファイルの自動更新などのバッチ処理などで有効です。
■ Apache についての他のドキュメント
- インストール
- htpasswd コマンド
- .htで始まるファイル(ちょっとしたメモ)
- Apache Bench(パフォーマンス測定)
- CGIのnphスクリプト
- ErrorDocument ディレクティブ
- ProxyPass ディレクティブ
- Redirect ディレクティブ
- mod_asisモジュール
- mod_perlモジュール
■ 他のグループのドキュメント
Apache / Linux / FreeBSD / OpenSSL / Perl / HTTPプロトコル / Jakarta Tomcat / Java / NetBSD / Oracle / PostgreSQL / UNIX の C言語 / UNIX のコマンド / Windows / bind / システム運用TIPS