Apache | アクセス権限 | パスワードファイルの作成(htpasswd)
ユーザー認証時に参照されるパスワードファイルを作成し、そこに新しいユーザーも追加してみる。
パスワードファイル作成コマンド
ユーザー認証時に参照されるファイルがパスワードファイルである。ユーザー名とパスワードがペアで登録されている。パスワードファイルは実際にはテキストファイルだが、作成にはApacheが提供するhtpasswd.exeを使用する。
htpasswd.exeファイルは(Apacheがインストールされているディレクトリ)\Apache24\binに含まれている。
C:\apache\Apache24\bin>dir
C 드라이브의 볼륨에는 이름이 없습니다.
볼륨 일련 번호: XXXX-XXXX
C:\apache\Apache24\bin 디렉터리
2019-11-26 오후 10:39 <DIR> .
2019-11-26 오후 10:39 <DIR> ..
2019-08-09 오후 11:47 97,280 ab.exe
2019-08-09 오후 11:47 109,056 abs.exe
2019-08-09 오후 11:47 41,984 ApacheMonitor.exe
2019-08-09 오후 11:47 18,432 apr_crypto_openssl-1.dll
2019-08-09 오후 11:47 31,232 apr_dbd_odbc-1.dll
2019-08-09 오후 11:47 14,848 apr_ldap-1.dll
2019-08-09 오후 11:50 9,192 dbmmanage.pl
2019-08-09 오후 11:47 100,352 htcacheclean.exe
2019-08-09 오후 11:47 123,392 htdbm.exe
2019-08-09 오후 11:47 84,992 htdigest.exe
2019-08-09 오후 11:47 117,760 htpasswd.exe <<<<<<<<<<<<<<<<<<<<<<< 여기 있다.
2019-08-09 오후 11:50 29,696 httpd.exe
2019-08-09 오후 11:47 65,024 httxt2dbm.exe
... 省略 ...
2019-04-05 오후 07:30 86,016 zlib1.dll
30개 파일 9,142,248 바이트
3개 디렉터리 453,122,154,496 바이트 남음
C:\apache\Apache24\bin>
Windowsで実行するには、コマンドプロンプトから実行する。実行形式は次のとおりである。
htpasswd オプション パスワードファイル ユーザー名
作成するパスワードファイルを指定し、追加するユーザー名を指定する。パスワードファイルを新しく作成する場合は、オプション-cを指定する。既存のパスワードファイルにユーザーを追加する場合は、オプションを何も指定しない。
パスワードを新規作成する場合:
htpasswd -c "C:\apache\passwd\passfile" devkuma
ユーザーを追加する場合:
htpasswd "C:\apache\passwd\passfile" kimkc
新しいパスワードファイルの作成
では新しいパスワードファイルを作成してみる。まずコマンドプロンプトを開き、(Apacheがインストールされているディレクトリ)\Apache24\binへ移動し、htpasswd -c "C:\apache\passwd\passfile" devkumaコマンドを入力して実行する。
コマンドを実行する前に、作成するファイルのディレクトリが作成されている必要がある。ディレクトリがない場合、次のようにエラーが発生する。
C:\apache\Apache24\bin>htpasswd -c "C:\apache\passwd\passfile" devkuma
htpasswd: cannot create file C:\apache\passwd\passfile
コマンドを実行して問題がなければ、次のようにパスワード入力欄が表示される。
C:\apache\Apache24\bin>htpasswd -c "C:\apache\passwd\passfile" devkuma
New password:
追加するユーザーの新しいパスワードを入力する。すると確認のため、再度パスワード入力欄が表示される。
C:\apache\Apache24\bin>htpasswd -c "C:\apache\passwd\passfile" devkuma
New password: ****
Re-type new password:
新しいパスワードと同じパスワードを入力する。
C:\apache\Apache24\bin>htpasswd -c "C:\apache\passwd\passfile" devkuma
New password: ****
Re-type new password: ****
Adding password for user devkuma
C:\apache\Apache24\bin>
確認まで正しく入力できれば、新しいパスワードファイルが作成され、アカウントが1つ追加される。
ユーザーの追加
すでに作成されているパスワードファイルにユーザーを追加するには、-cを付けずに実行する。-cを付けると新しいパスワードファイルが作成され、既存の登録ユーザー情報が消えるため注意する。
C:\apache\Apache24\bin>htpasswd "C:\apache\passwd\passfile" kimkc
New password: ****
Re-type new password: ****
Adding password for user kimkc
C:\apache\Apache24\bin>
コマンドの入力方法は、新しくパスワードファイルを作成する方法と同じである。
パスワードファイルの確認
では、作成されたパスワードファイルの内容を確認してみる。テキストファイルなので、テキストエディタで開くことができる。
devkuma:$apr1$H.4gZ1un$LTl9FvfcbxRrRKfqZ4Txy0
kimkc:$apr1$/P6swipC$60iAhelYy/0i6bVbhPHy5/
現在、devkumaとkimkcの2つのアカウントが作成されている。パスワードは暗号化されて保存されているため、内容は分からない。
ユーザーの削除
ユーザーの削除は、パスワードファイルから該当行を削除してもよいが、-Dオプションで実行して削除することもできる。実行形式は次のとおりである。
htpasswd -D パスワードファイル ユーザー名
では、kimkcアカウントを削除してみる。
htpasswd -D "C:\apache\passwd\passfile" kimkc
C:\apache\Apache24\bin>htpasswd -D "C:\apache\passwd\passfile" kimkc
Deleting password for user kimkc
C:\apache\Apache24\bin>
kimkcが削除された。確認のためパスワードファイルを開く。
devkuma:$apr1$H.4gZ1un$LTl9FvfcbxRrRKfqZ4Txy0
kimkc行が削除されたことを確認できる。
これでパスワードファイルの準備ができた。次のページで認証を実行してみる。