apache basic 認証 ほか (expect 等) に戻る

apache basic passwd login 001

特定の領域に passwd を 入力して login

apache httpd.conf

処理方法 その1

相手の場所に行く

$ 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

データーの 移動解凍 完了

httpd.conf の 修正

# 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 ファイルの 作成

移動して 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 オプション は 不要である、 後で 例題を 行うが

見えるように調整 http ファイルの リンクを 設定する。

# 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 等 した方が 良いが待ち遠しい ので 強引に 操作した

上に

これで アクセス した場合 どのように なるだろうか

auth 画面

このような 画面が出てくれば 成功である
AuthName "Here come recipe files!" で指定した 文章が 含まれている事が 確 認出来る

間違ったものをいれても 動かない事を 確認して 正当なもので 見れる事を 確認すれば良い もし キャンセルをクリックすれば このような画面が 現れるだ ろう
auth 画面

これは サービスで 表示 してます

上に

passwd の 変更を 試す

パスワードを 変更してみよう

$ 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 作成


apache basic 認証ほか (expect 等)


Copyright © 2004.-2007. nyantarou All Rights Reserved.