ここでは, パスワードを知っている特定のユーザやグループメンバ, また特定の ドメインや ホスト からのアクセスに対してのみ情報を公開する方法を説明します.
基本的に, public_html以下のディレクトリにあるすべてのファイルは, 世界中のユーザに対して制限なしに公開されます. しかし, CNS の外部からアクセスされては不都合なファイルなども存在します. このような場合, 各ユーザは自分のディレクトリにパスワードを設定し, 公開する相手のユーザ認証を (図), 行えます. また,特定の ドメイン(CNS など)や ホスト(ccz00.sfc.keio.ac.jpなど) からのアクセスに対してのみファイルを公開できます.
CNS では次に示すアクセス制限を設定できます.
次に `/home/t02000tf/public_html/secret' (http://www.sfc.keio.ac.jp/~t02000tf/secret) というディレクトリの下にあるファイルを, パスワードを知っているユーザにのみアクセスを許可する方法を説明します.
AuthUserFile /home/t020000tf/etc/.htpasswd AuthName authorized_area AuthType Basic <LIMIT GET> require user t02000tf </LIMIT> |
`AuthUserFile'には, 後で作成するパスワード設定ファイルを 絶対パス() で指定します. URLによるディレクトリの指定や 相対パス()で指定します. URLによるディレクトリの指定や, 相対パス()による指定は エラーとなるので注意してください. `require group'の後には, このディレクトリにアクセスを許可するグループ名を指定します. グループ名は自由に名称を設定できます.
% mkdir /home/t02000tf/etc% _
% htpasswd -c /home/t02000tf/etc/.htpasswd taro <RET> Adding password for taro. New password:<パスワードを入力> Re-type New password:<パスワードを入力> % htpasswd /home/t02000tf/etc/.htpasswd hanako <RET> \begin{math}\cdots\end{math} % htpasswd /home/t02000tf/etc/.htpasswd jiro <RET> ...... % _
htpasswdコマンドを実行すると, 各ユーザのパスワードを入力する状態になります. 入力した内容は画面には表示されないので慎重に入力してください. ここで, そのユーザに対するパスワードを入力します. 2度求められるので, 同じように入力すると, `/home/t02000tf/etc/.htpasswd' というファイルが新規に作成され, この中に各パスワードが暗号化されて書き込まれます.
friends: taro hanako jiro
これでパスワードが設定され, グループ単位でアクセスを許可できるようになります.
ドメイン名によってアクセス制限をするには, アクセス制限するディレクトリに`.htaccess'という 名前のファイルを図のような内容で作成します. この例では,ドメイン`sfc.keio.ac.jp' (CNS 全体) からのアクセスのみを許可するように設定しています.
<LIMIT GET> order deny,allow deny from all allow from .sfc.keio.ac.jp </LIMIT> |
これで, そのディレクトリとそれ以下の階層のディレクトリは CNS 内のホストからしかアクセスできないようになります.
上の例はドメイン名によるアクセス制限ですが, ホスト名によるアクセス制限も行えます. アクセスを制限するディレクトリに, `.htaccess'という名前のファイルを図のような内容で作成します.
<LIMIT GET> order deny,allow deny from all allow from ccz00.sfc.keio.ac.jp </LIMIT> |
これで, CNS 内にある`ccz00.sfc.keio.ac.jp'という名前のホストからのアクセスのみ許可されます.
パスワードによるアクセス制限と, ホスト名, ドメイン名によるアクセス制限との組み合わせも可能です.
その際は, 次のように`.htaccess'ファイルの, Userfile,Groupfileの部分に, などを参考にして, 適切なディレクトリ, ファイル名を指定します.
AuthUserFile Userfile AuthGroupFile Groupfile
また,6.1.1から6.1.3 を参考に,次の設定を必要に応じて <LIMIT>と </LIMIT> の間に書き加えます.
<LIMIT GET> require group UserGroupName require user UserName allow from DomainName allow from HostName </LIMIT>
AuthUserFile /home/t02000tf/etc/.htpasswd AuthGroupFile /home/t02000tf/etc/.htgroup AuthName authorized_area AuthType Basic <LIMIT GET> require group friends require user taro order deny,allow deny from all allow from .sfc.keio.ac.jp </LIMIT> |