apache basic 認証 ほか (expect 等) に戻る
今回は他の領域に basic password 認証 を 行う アクセスする人 も 別の 人 passwd file も また別の 異なった file にする。
今回は有る一部の 領域 を 既に basic 認証 で 運用中です それに 対して 新しく 別の 領域を 別の 人に basic 認証 するということです この 単純な サーバー に対して
/apach2/htdocs/index.html -----/user1-htmlfiles user1 /~user2/index-htmlfiles user2 /* パスワード ファイルも 別に 作成する */ .passwdiuser1 .passwdiuser2
これが 正解か どうかは 不明ですが httpd.conf に 追記した 形に なると 思います 追加のお客さんは ”april”さんです
<Directory "/var/data/www/apache2/htdocs/8000_secret/">
AuthUserFile /var/data/www/apache2/htdocs/8000_secret/.passwdnyanta
AuthGroupFile /dev/null
AuthName "Here come recipe files!"
AuthType Basic
<limit GET>
require valid-user
</limit>
</Directory>
#2006年 4月15日 (土) 17:02:24 JST add user april test
<Directory "/home/mm/public_html/april_work/1002_secret/">
AuthUserFile /var/data/www/apache2/.passwdapril
AuthGroupFile /dev/null
AuthName "Here come april files!"
AuthType Basic
<limit GET>
require valid-user
</limit>
</Directory>
ということで 始めましょう
一組の html ファイルは 作成済みの 状況です そこで 設置済みのサーバー にての 作業に なります
scp の ”r”オプションにて 再起的に データーの 移動します
$ scp -r april_work/ cricrima-sa.no-ip.info:/home/mm Enter passphrase for key '/home/mm/.ssh/id_rsa': index.html 100% 1231 4.1MB/s 00:00 april.css 100% 6677 9.9MB/s 00:00 sample-pkgtool-w661h371.png 100% 3589 3.2MB/s 00:00 index.html 100% 4559 6.3MB/s 00:00 index.html $ ssh -l mm cricrima-sa.no-ip.info /* 相手方の サーバーに 侵入して */ Enter passphrase for key '/home/mm/.ssh/id_rsa': $ su - Password: # cd /home/mm # mv april_work/ public_html/
データーの 移動解凍 完了
新しく リンクするために index.html を 修正します。
# cd /var/data/www/apache2/htdocs/ # cp index.html index.html_normal # vi index.html # diff -s index.html index.html_normal 58d57 < <a href="/~mm/april_work/index.html" title="Spring!Spring" >april_work</a>
httpd.conf を 変更して 新しい 領域 、ユーザー、パスワードの 条件を 追記 します。
# cd ../conf/ # pwd /var/data/www/apache2/conf # cp httpd.conf httpd.conf_normal # vi httpd.conf # diff -s httpd.conf httpd.conf_normal 1072,1090d1071 < #Sat Apr 15 22:50:38 JST 2006 add user april test < <Directory "/home/mm/public_html/april_work/1002_secret/"> < < AuthUserFile /var/data/www/apache2/.passwdapril < < AuthGroupFile /dev/null < < AuthName "Here come april files!" < < AuthType Basic < < <limit GET> < < require valid-user < < </limit> < < </Directory> <
password を 作成します 今回追加 ユーザーの為新しく 作成する ”c”オプ ションを つけて作成します。
# cd ../bin/ # pwd /var/data/www/apache2/bin # ./htpasswd -c /var/data/www/apache2/.passwdapril april New password: Re-type new password: Adding password for user april # pwd /var/data/www/apache2 # ls -a ./ bin/ conf/ icons/ logs/ modules/ ../ build/ error/ include/ man/ org_htdocs/ .passwdapril cgi-bin/ htdocs/ lib/ manual/
移動して passwd ファイルの 名前と ユーザーの 名前を 指定する 今回の場 合は 場所が /var/data/www/apache2/ の 場所に ファイルの名前が .passwdapril で ユーザーの 名前が april である場合 そして passwd を 2回 入力する。 後 passwd file が作成されているか 確認を 行います。出来ているようです。
所有者を apache に 戻しておきます
# pwd /var/data/www # chown -R apache.apache apache2/*
log 関連の 整理して クリヤー します。
# pwd /var/data/www/apache2/logs # :>access_log # :>error_log
apache (httpd) の 停止 起動 を 行います
# pwd /var/data/www/apache2/logs # ../bin/apachectl stop # ../bin/apachectl start # cat error_log [Sat Apr 15 23:04:40 2006] [notice] Apache/2.0.54 (Unix)\ configured -- resuming normal operations
この場合 apachectl graceful ; apachectl restart 等 した方が 良いらしい。
これで アクセス した場合 どのように なるだろうか 間違ったものをいれても 動かない事を 確認して 正当なもので 見れる事を 確認すれば良い 以下はユーザーの 名前は正しいが パスワードを 間違った例の log です
# cat access_log 123.456.7.89 - - [17/Apr/2006:20:07:28 +0900]\ "GET /~mm/april_work/index.html HTTP/1.1" 401 480 123.456.7.89 - april [17/Apr/2006:20:07:36 123.456.7.+0900]\ "GET /~mm/april_work/index.html HTTP/1.1" 401 480 # cat error_log [Mon Apr 17 20:07:36 2006] [error] [client 123.456.7.89]\ user april: authentication failure \ for "/~mm/april/index.html": Password Mismatch,\ referer: http://nyanta.bcnet.neko.cat/
ほんでもっておわりです ああこわい
にゃんたろう 拝!
2006年 4月17日 (月) 21:35:08 JST 作成