2003/01/01
$web/etc/passwd
passwd
を使用します。$web
は web ルートです。次がパスワードファイルの例です。# a sample password file 'aladdin''s lamp' 54ef36ec71201fdf9d1423fd26f97f6b /photo/privateパスワードファイルの中での "
#
" はコメントです。また空行も許されます。コメントを除去したあとに3つのフィールドが残ります。
第一フィールドはユーザの名称を書きます。この例の 'aladdin''s lamp'
はユーザがパスワードとして入力する場合には、ユーザ名として
aladdin's lampを使用する事を意味します。この名前は
/adm/users
に登録されている必要はありません。 名前の中に空白や引用符('
) を含む場合にはシェルの文字列規則に基づきます。
第二フィールドは パスワードの MD5 です。コマンド
echo -n 'open sesame' | md5sumでここに挙げた MD5 の値が得られるはずです。
第三フィールドはパスです。ここに示したパスの下にある全てのアクセスに対してパスワードが要求されます。
クライアントがパスワード認証が必要な領域(realm)にアクセスした場合にはユーザ名とパスワードの入力が促されます。Pegasus は入力されたユーザ名が passwd
のユーザ名と一致し、かつ正しいパスワードが送られた場合にのみ参照を許可しています。
1つの領域に対してユーザ名とパスワードの入力は1回だけで充分です。
サーバはクライアントから領域へのアクセスがあった時に「立ち入り禁止 (○×領域)」のメッセージをクライアントに送ります。クライアントは○×領域のパスワードをサーバに示して通過する訳です。クライアントは○×領域のパスワードを覚えていて、二回目からのアクセスに関しては自動的にサーバに送ります。
クライアントからサーバへパスワードが配送されたときに盗聴されていれば生のパスワードが読み取れます。passwd
ファイルは CPU サーバに置かれているので他のユーザから読み取られるかも知れません。MD5 を使用する場合には辞書攻撃に合わないような良いパスワードを使用して下さい。
この認証は HTTP/1.0 で述べられている basic authentication です。簡便な認証方式なのでよく使用されている様ですが盗聴に弱いので重要なデータには使用しないで下さい。
注意
第三フィールドが要求されたパスにマッチしているか否かの判定に関してはパス名適合規則を参照して下さい。なお、この判定は URI 変換が終了してから行われます。この段階ではパスはファイル名で終了しています。