apache basic 認証 ほか (expect 等) に戻る
相手の場所に行く
$ ssh -l mm 192.168.0.8 mm@192.168.0.8's password: mm@nl:~$ su - Password: # pwd /var/data/www/apache2/htdocs/adir001 # mkdir 8000_secret # cd 8000_secret/ # cp /home/mm/httpsecret.tgz . # tar zxvf httpsecret.tgz
データーの 移動解凍 完了
# cd ../../../conf/ # cp httpd.conf 005_httpd.conf_050522 # diff -s httpd.conf 005_httpd.conf_050522 1071,1090d1070 < #2005年 5月22日 (日) 22:55:57 JST ADD below lines::BEGIN << < AuthUserFile /var/data/www/apache2/.passwdnon < < AuthGroupFile /dev/null < < AuthName "Here come recipe files!" < < AuthType Basic < < < #2005年 5月22日 (日) 22:55:57 JST ADD above lines :: END << < require valid-user < < < <
ディレクトリの指定 は 相対でなく 絶対 パスで 表す 即ち
<Directory "/var/data/www/apache2/htdocs/adir001/8000_secret/">
の場合は 8000_secret/ 以降の ディレクトリが 対象になる。passwd ファイル
は 何でも 良いようである、また 場所も 何処でも良いようです 今回は 次の
場所に 置く事に しました DocumentRoot "/var/data/www/apache2/htdocs"
以降には 置かない方が 良いようです。
AuthUserFile /var/data/www/apache2/.passwdnon
として 満が一 削除洩れが 無いようにしておく つまり apache を 削除する時
には 少なくとも /var/data/www/apache2 の apache2 以降は削除 するであろう
又 DocumentRoot より 上位に あるので 見付けられる可能性も 少ないであろう
と 考えた /etc/http云々 が 参考例として 見受けられるが 今回は 上記とす
る。
移動して passwd ファイルの 名前と ユーザーの 名前を 指定する 以下の場 合は 場所が /var/data/www/apache2/ の 場所に ファイルの名前が .passwdnon で ユーザーの 名前が non である場合 そして passwd を 2回 入力する
# cd ../bin # ./htpasswd -c /var/data/www/apache2/.passwdnon non New password: Re-type new password: Adding password for user non # ls -al ../ | head -4 | sed -e '$!d' -rw-r--r-- 1 apache apache 18 May 23 00:14 .passwdnon
とりあえず 出来てるようだ。1回目は -c オプションで作成する 2回目は どうするか パスワードの 変更を する場合は -c オプション は 不要である、 後で 例題を 行うが
# cd ../htdocs/ # cp index.html 20050522_index.html # ls adir001/8000_secret/0001_sec_cri_recipe/ | grep index index.html # vi index.html
結果を ブラウザで 確認すると 何にもしないで 見える これは 不都合、再起動 が必要であろう、その前に owner group を 元に 戻してから
# cd ../../../ # chown -R apache.apache www/ # ps ax | grep http | sed q 88 ? S 0:00 /var/data/www/apache2/bin/httpd -k start # ./www/apache2/bin/apachectl stop # ps ax | grep http | sed q # ./www/apache2/bin/apachectl start # ps ax | grep http | sed q 508 ? S 0:00 /var/data/www/apache2/bin/httpd -k start
この場合 apachectl graceful ; apachectl restart 等 した方が 良いが待ち遠しい ので 強引に 操作した
上にこれで アクセス した場合 どのように なるだろうか
このような 画面が出てくれば 成功である
AuthName "Here come recipe files!" で指定した 文章が 含まれている事が 確
認出来る
間違ったものをいれても 動かない事を 確認して 正当なもので 見れる事を
確認すれば良い もし キャンセルをクリックすれば このような画面が 現れるだ
ろう
これは サービスで 表示 してます
上にパスワードを 変更してみよう
$ ssh -l mm 192.168.0.8 mm@192.168.0.8's password: $ su - Password: # /var/data/www/apache2/bin/htpasswd /var/data/www/apache2/.passwdnon non New password: Re-type new password: Updating password for user non # ls -al /var/data/www/apache2/ | head -4 | sed -e '$!d' -rw-r--r-- 1 apache apache 18 May 23 11:18 .passwdnon # cat /var/data/www/apache2/.passwdnon non:g2Qz8BfEdtVw. # ps ax | grep http | sed q 508 ? S 0:00 /var/data/www/apache2/bin/httpd -k start # /var/data/www/apache2/bin/apachectl stop # ps ax | grep http # /var/data/www/apache2/bin/apachectl start # ps ax | grep http | sed q 601 ? S 0:00 /var/data/www/apache2/bin/httpd -k start # exit logout $ exit logout Connection to 192.168.0.8 closed. $
再起動後 パスワードが 変更されてるかを 確認すれば良い 上記で 再起動は 終わってる
注意事項
この場合すぐにアクセスする
場合 パスワードの 入力画面が 表示 されずに そのまま 画面が見えて 何をし
てるか わからない パスワードの 変更以前の 問題に 遭遇する場合が あります
ある程度の 時間は アクセスしても パスワードの 入力 を 要求されない場合が
あるという事です、timeout 300 が 効いてるのか どうかは 不明なので まあ
見る 機器側の 再起動でもすれば 有効に なってるのが わかるでしょ
う、わりと 泡を食う 失敗例です。見る方も 再起動すれば 可能ですパスワード
の 要求画面から アクセスするように なります。
諸々の 補足は 別途ということに しましょう 最低限の 設定
にゃんたろう 拝!
2005年 5月23日 (月) 22:35:50 JST 作成