やりたいこと
カレントディレクトリにBasic認証をかけるBashスクリプトを作成したい。
具体的な要件は以下。
- .htaccessと.htpasswdは、カレントディレクトリに設置。
- カレントディレクトリのフルパスを取得して.htpasswdのPathを記述する。
- chmod コマンドにて.htaccessと.htpasswdを、適切なパーミッションにする。
- .htpasswdのIDおよびパスワードは、Bashスクリプトを実行したユーザーにインタラクティブに入力させる仕組み。
- Basic認証の対象ディレクトリはカレントディレクトリ以下すべて
カレントディレクトリにBasic認証をかけるシェルスクリプト
空のシェルスクリプトを作成する。
vim create_basic-auth.sh
↓
以下の内容をコピペしてシェルスクリプトを作成する。
#!/bin/bash
# カレントディレクトリのフルパスを取得
DIR=$(pwd)
# .htaccess ファイルを作成
echo "AuthType Basic" > .htaccess
echo "AuthName \"Restricted Content\"" >> .htaccess
echo "AuthUserFile $DIR/.htpasswd" >> .htaccess
echo "Require valid-user" >> .htaccess
# パーミッションを設定
chmod 644 .htaccess
# .htpasswd ファイルを作成
echo -n "Enter the username: "
read USERNAME
htpasswd -c .htpasswd $USERNAME
# パーミッションを設定
chmod 644 .htpasswd
↓
シェルスクリプトに実行権限を付与する。
chmod +x create_basic-auth.sh
(ご自身の環境に合わせて自己責任で実施ください)
↓
シェルスクリプトを実行する。
./create_basic-auth.sh
↓
以下の順番でプロンプトに対して返答する
- Basic認証に設定したいユーザー名を入力する
- Basic認証に設定したいパスワードを入力する
- Basic認証に設定したいパスワードを入力する(確認)
注意点
- 当然ながら、Apacheがインストールされ、mod_auth_basicとmod_authn_fileが有効になっていること
- Apacheの設定で.htaccessファイルが有効になっていること
- 既存のファイルを上書きしないように注意
- 既存の.htpasswdファイルにユーザーを追加する場合は、htpasswd -cの-cオプションを削除してファイル名を指定する
コメント