htpasswd コマンドは、Apache HTTP Server などで使われる Basic 認証 のユーザー名とパスワードを管理するためのツールです。
認証情報はハッシュ化されて .htpasswd ファイルに保存され、Web サイトのアクセス制御に利用されます。
構文(Syntax)
htpasswd [オプション] <パスワードファイル> <ユーザー名>
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
<file> <user> | パスワードファイルにユーザーを追加/更新 | htpasswd .htpasswd alice |
-c | 新しいパスワードファイルを作成(既存ファイルは上書き) | htpasswd -c .htpasswd alice |
-b | 対話入力ではなくコマンドラインでパスワードを指定 | htpasswd -b .htpasswd alice secret123 |
-B | bcrypt を使ってハッシュ化(推奨) | htpasswd -B .htpasswd alice |
-m | MD5 でハッシュ化 | htpasswd -m .htpasswd bob |
-s | SHA でハッシュ化 | htpasswd -s .htpasswd bob |
-d | crypt(3) でハッシュ化(非推奨) | htpasswd -d .htpasswd bob |
-D | 指定したユーザーを削除 | htpasswd -D .htpasswd alice |
-v | 認証テスト(ユーザー/パスワード入力を確認) | htpasswd -v .htpasswd alice |
実行例
新しい .htpasswd を作成しユーザー追加
htpasswd -c .htpasswd alice
出力例(対話式入力):
New password:
Re-type new password:
Adding password for user alice
既存ファイルに新しいユーザーを追加
htpasswd .htpasswd bob
bcrypt で安全にパスワードを保存
htpasswd -B .htpasswd carol
コマンドラインでパスワードを指定
htpasswd -b .htpasswd dave secret123
ユーザーを削除
htpasswd -D .htpasswd bob
認証テスト
htpasswd -v .htpasswd alice
出力例:
Password: ****
Password for user alice correct.
エラー例(存在しないファイルを指定)
htpasswd notfound.htpasswd user
出力例:
htpasswd: cannot modify file notfound.htpasswd; use '-c' to create it
関連コマンド
openssl passwd: パスワードをハッシュ化して表示する。apache2ctl: Apache HTTP Server の管理コマンド。
備考
.htpasswdは通常、Web サーバーの公開ディレクトリ外に配置し、.htaccessなどで参照されます。- ハッシュ方式はセキュリティの観点から bcrypt (
-B) 推奨。 - Apache 以外の Nginx や Lighttpd などでも
.htpasswdを利用可能です。
参考
- Apache HTTP Server ドキュメント: https://httpd.apache.org/docs/current/programs/htpasswd.html
- manページ: https://man7.org/linux/man-pages/man1/htpasswd.1.html

コメント