Thu Dec 10 16:02:41 JST 1998 << nnrpd_auth.pl のパッチ >> nnrpd_auth.pl.dist 変更前のオリジナル nnrpd_auth.pl-v1.1+0.1.diff v1.1 からのパッチ nnrpd_auth.pl-v1.1+0.1 パッチ適用後のファイル INN nnrpd のユーザ認証でユーザ名のフィールドに ``+'' を指定すると、 デフォルトではシステムのパスワード(/etc/passwd)と照合します。 ですが、nnrpd は PID:news で動作するため、シャドウパスワードを利用する UNIX ではパスワードの照合を行う事が出来ません。 INN のドキュメントによると、シャドウパスワードに Readable な GID をセッ トし、nnrpd を standalone モードで起動すると良いと書いてあります。が、 良くわからないので、ここではこの方法には触れません。 また、別の方法として、認証部分を Perl プログラムへフックする方法が提供 されています。 Perl を利用する場合、サンプルとして bin/filter/nnrpd_auth.pl が用意さ れています。 サンプルの nnrpd_auth.pl は、おおよそ次のように動作します。 1) nnrp.access を読み、host 部にマッチするとアクセスを許可 2) そうでない場合ユーザ認証が行われる。 3) ユーザ認証は CDB 形式のファイル (DB 形式みたいなもの) から読み込 まれ、Read/Post の許可や newsgroups の許可も、この CDB ファイルに 設定しておく。 つまり、ユーザ認証に限っては nnrp.access を無視する事になります。また CDB を利用するには Perl module をインストールする必要があります(簡単だ けど...)。 そこで、本パッチでは nnrpd_auth.pl を修正し、次に示す動作に変更します。 1) ユーザ認証ファイルは単純なユーザ名とパスワードから構成する 例: foo:8fk13Uuo./hdf bar:i0z3Uio.j87aa:Taro Bar 2) 属性に関してはなるべく nnrp.access に従う Read/Post と newsgroups は該当する nnrp.access のエントリに従い ます。 3) ``+'' を正しく読む。 本パッチは以下の INN で確認しています。 inn-STABLE_2_2-1998-12-09_03-02 inn-STABLE_2_2-1998-12-04_03-02 準備 ==== INN を --with-perl でコンパイルする。 --with-perl でコンパイルされているかを調べるには nm nnrpd で確認します。 --with-perl でコンパイルされている場合 perlConnect 関数が存在します。 |% nm nnrpd | grep perlConnect |08057228 T perlConnect |% 設定 ==== 1. bin/filter/nnrpd_authl.pl を置き換え、$passwdfile を準備します。 2. inn.conf の nnrpperlauth を true に変更し、ctlinnd reload all を実 行します。 うれしいこと ============ 1. /etc/passwd にユーザを作成しなくて済む 2. パスワード変更を多少安心して Web から行う事ができる。 3. 属性は nnrp.access に集中させる事ができる。 -- Copyright (c) 1998 Hisashi Gotoh Hitachi Information Network, Ltd.