2002/08/25
Pegasus は、他のサーバと同様に、ドキュメントルート(サービス空間の /doc) の外のファイルをクライアントから要求された場合には拒否します。さらに Pegasus はピリオドで始まるファイルを要求された場合にも拒否します。これらは CGI を通じてのみアクセス可能です。
以上の一般的な規則の他に、パスワードによってアクセスできるディレクトリや特定の IP のクライアントのみ拒否あるいは受け入れるディレクトリを定義できます。以下ではこれをアクセス制御と呼ぶことにします。
Pegasus のアクセス制御は、ホームページの運営者が行えるようにできています。システムの管理者にお願いする必要はありません。
アクセス制御に関するユーザ alice のファイルは
/usr/alice/web/etc
に置かれています。
bob が仮想ホストの運営者であればアクセス制御に関するファイルは
/usr/bob/www/etc
に置かれているでしょう。
carol が実ホストの管理者であれば、
/usr/carol/www/etc
に carol が運営するホームページに対するアクセス制御ファイルが置かれています。
これらは何れもサービス空間では
/etc
になっています。
PLan9 は HTTP/1.0 で規定されている基本認証(basic authentication)をサポートしています。基本認証の長所は、仕組みが簡単なので、多くの Web サーバとブラウザでサポートされている事に尽きます。短所は生のパスワードがネットワークに流れるので盗聴に弱い事です。(注: この問題はPegasus 1.2 で TLS をサポートしたことによって解決したと思われる)
もっと高度な認証方式としては Challenge/Response 方式が HTTP/1.1 で規定されていますが、現在の所代表的なブラウザではサポートされていません。(従って Pegasus でもサポートされていません。)
認証には CPU サーバのファイルを使用します。即ちサービス空間の
/etc/passwd
がそれです。パスワードの正当性はパスワードの MD5 の結果と比較する事によって判断されます。
関連ファイル: /etc/passwd
クライアントからのドキュメントへのアクセスをクライアントのIP アドレスで制御することもできます。制御ファイルはサービス空間の
/etc/allow
です。
関連ファイル: /etc/allow