Node: Anonymous Access, Next: , Previous: The Password-Authenticating Server, Up: Repository Administration



Anonymous Access

ここまでパスワード認証サーバを使って、リポジトリに対し通常のフルアクセ スを許可するやりかたを見てきました(Unix ファイルパーミッションを巧みに 利用してアクセス制限をすることは可能ですが)。一方、匿名の読み出し専用 アクセスを実現するにはワンステップで済みます: CVSROOT/ の下に新しいフ ァイルを1つか、もしかしたら2つ、追加するだけでいいのです。ファイル名は readerswriters、前者はリポジトリを読めるユーザ名の、 後者は読み書きできるユーザ名のリストです。

CVSROOT/readers にユーザ名を書くと、そのユーザはリポジトリ内の全てのプ ロジェクトに対する読み出しアクセスのみ可能になります。CVSROOT/writers にユーザ名を書くと、そのユーザは書込み権限を得、writers ファイルに書か れていない他の pserver ユーザは読み出しアクセスのみ可能になります(つま り、writers ファイルが存在するということは、そこに書かれていないユーザ を読み出しアクセスのみに制限するという意味になります)。両方のファイル に同じユーザ名が書かれている場合、CVS はその矛盾を保守的な方法で解決し ます: そのユーザは読み出しアクセスのみ可能になります。

ファイルの形式は非常に単純で、各行1ユーザです(最後のユーザの後に改行を 入れるのを忘れないで)。readers ファイルのサンプルを示します:

     anonymous
     splotnik
     guest
     jbrowse
     

それらのファイルは CVS ユーザ名に適用されます。システムユーザ名ではあ りません。CVSROOT/passwd のユーザエイリアス機能を使っている場合(2番目 のコロンの後にシステムユーザ名を書いている場合)、readers または writers ファイルに使用するのは一番左側のユーザ名です。

Just to be painfully accurate about it, 許可するのが読み出しアクセスか 読み書きアクセスかを決定する時のサーバの動作を正式に説明するとこうなり ます:

readers ファイルが存在し、その中にそのユーザが書いてあれば、読み出しア クセス。writers ファイルが存在し、その中にそのユーザがなければ、読み出 しアクセス(これは readers ファイルが存在していてそのユーザがその中にな い場合にも真)。そのユーザが両方に書いてあれば、読み出しアクセス。その 他の場合、読み書きアクセス。

従って、典型的な匿名 CVS アクセスのリポジトリは CVSROOT/passwd には次 のような行があります

     anonymous:XR4EZcEs0szik
     

/etc/passwd には次のような行

     anonymous:!:1729:105:Anonymous CVS User:/usr/local/newrepos:/bin/false
     

CVSROOT/readers には次のような行

     anonymous
     

当然 /etc/services と /etc/inetd.conf には以前言ったような設定を。これ で全部です。

古めの Unix システムでは8文字以上のユーザ名をサポートしていないことに 注意して下さい。これに対応するひとつの方法は、CVSROOT/passwd ファイル とシステムファイルでそのユーザを anonymous ではなく anon にしておくことです。anonymous の短縮形は anon だろう、と思う人は多いで すから。しかし、 CVSROOT/passwd ファイルにこのような行を書くほうがよい かもしれません:

     anonymous:XR4EZcEs0szik:cvsanon
     

(もちろんシステムファイルでは cvsanon を使って下さい)。こうすれ ば、多少標準的な anonymous を使ったリポジトリアドレスを公開でき ます。リポジトリに

     cvs -d :pserver:anonymous@cvs.foobar.com:/usr/local/newrepos (etc...)
     

でアクセスしてくる人は、サーバ上では cvsanon (かなんか)の権限で実行さ れますが、その人たちはサーバ側でどう設定されているかなんて知る必要はな く、ただ公開されたアドレスだけ見ていればいいのです。