相手の場所に行く
$ 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
<
<
<
< require valid-user
<
<
<
<
< #2005年 5月22日 (日) 22:55:57 JST ADD above lines :: END
<
ディレクトリの指定 は 相対でなく 絶対 パスで 表す 即ち
<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 作成