Htaccessによるアクセス制御
提供:kuhalaboWiki
(版間での差分)
(ページの作成:「アカウントとパスワードによって、特定のユーザだけにアクセスを許可する仕組み。ディレクトリごとにアカウントを設定す...」) |
2013年4月15日 (月) 22:34時点における版
アカウントとパスワードによって、特定のユーザだけにアクセスを許可する仕組み。ディレクトリごとにアカウントを設定することができる。(Apacheのみ)
目次 |
資料
ホームディレクトリ構造
/home/i**24000/ |--public_html/ | (ホームページ用のディレクトリ) | |--index.html (自分のトップページのHTML) | |--staffonly/ |(パスワード保護しているディレクトリ) | | |--.htaccess(アクセス制御のファイル) | |--xxxx/ (その他のページのディレクトリ) | |--conf/ | (htaccessのアカウント管理用ディレクトリ) |--.htpasswd (htaccessアカウント管理ファイル) (注1)/(スラッシュ)で終わっているのはディレクトリを指す。 (注2)「**24000」は,自分の学籍番号に置き換える.
- 自分のローカルHDDに,i**24000という名前のフォルダを作成して,上記と同じ構造にしておく。
- ローカル側でファイルを作成・編集してから,サーバ側にWinSCPでアップロードする。
- サーバ側で作成したフォルダやファイルをWinSCPでダウンロードして,常にサーバ側の情報をローカル側に持っておく。
- 外からhttpでアクセスするのは、public_html以下のディレクトリ。
- http://sandbox.media.t-kougei.ac.jp~i**24000/でindex.htmlが表示される。
.htaccessファイルの作成
- アクセス制御したいディレクトリに.htaccessという名前のファイルを置く。
- ローカルPC上のテキストエディタで以下の通り.htaccessファイルを作成する。
- WinSCPなどでサーバ上のアクセス制御したいディレクトリ(例えば,/home/i0X24***/public_html/staffonly/)にアップロードする。
.htaccessの中身の例
AuthType Basic AuthGroupFile /dev/null AuthUserFile /home/i0X24***/conf/.htpasswd AuthName "ようこそ!太郎のページへ !" <Limit GET POST> Order deny,allow Deny from all Require user Media Satisfy any </limit>
意味は以下の通り
- AuthUserFile /home/i0X24***/conf/.htpasswd
- パスワードファイル(.htpasswd)をサーバ上に設置する場所をフルパスで指定
- i0X24***はサーバにログインするときの自分のアカウント名
- AuthName "ようこそ!太郎の課題のページへ"
- ダブルクォーテオション(")で囲った文字列がログイン画面に表示されるメッセージ
- Require user Media
- 指定したユーザ名(この場合はMedia)でアクセス許可
- ログインのユーザ名とパスワードを管理する.htpasswdファイルはAuthUserFileで指定
- 複数のユーザ名を指定するときは半角スペースで区切る。
- たとえばユーザ名tomoを追加するには Require user Media tomo
.htpasswdファイルの作成
ユーザ名とパスワードを管理する.htpasswdファイルを作成し、public_htmlの外に置く。
- teratermやPuTTYなどでサーバにログインする。
- .htaccessで指定したディレクトリ(/home/i0X24***/conf/)を作成する。
[i**4000@sandbox ~]$ pwd (現在位置の確認) /home/i**4000 [i**4000@sandbox ~]$ mkdir conf (confディレクトリの作成) [i**4000@sandbox ~]$ cd conf (confディレクトリへ移動) [i**4000@sandbox conf]$ pwd (現在位置の確認) /home/i**4000/conf
- htpasswdコマンドを入力する。
[i**4000@sandbox ~]$ htpasswd -c パスワードファイル ユーザ名
パスワードファイルが .htpasswd で,ユーザ名Mediaの場合は,
[i**4000@sandbox ~]$ htpasswd -c .htpasswd Media New password: Re-type new password: Adding password for user Media [i**4000@sandbox ~]$
- 以下のように新しく設定するパスワードを2回聞いてくるので,パスワードを入力する。
- このとき,カーソルは動かないが,文字は入力されているので,気にせずパスワードを入力し、Enterキーを押す。
- lsコマンドでパスワードファイル.htpasswdの存在を確認し、catコマンドで,パスワードファイル.htpasswdの中身を確認できる。
[i**4000@sandbox ~]$ ls -al total 40 drwxr-xr-x 2 kuha kuha 4096 Apr 25 08:01 ./ drwxr-x--x 23 kuha kuha 4096 Apr 20 17:10 ../ -rw-r--r-- 1 kuha kuha 140 Oct 22 2003 .htpasswd [i**4000@sandbox ~]$ cat .htpasswd Media:wtnrc7euKVd9U
ユーザを追加する場合は、htpasswdコマンドを-cオプションをはずして使用する。 例えばユーザ名tomoを追加するには以下のとおり。
[i**4000@sandbox ~]$ htpasswd .htpasswd tomo