Namazu-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

permission denied で mknmz が終了する.



多田@大阪大学です.

namazu-1.3.0.11 から 2.0 に乗り換えたところ,permission denied が発生
するとインデックス作成途中で mknmz が終了するようになってしまいました.

原因が分かったので報告します.対処法は正しいかどうか分かりませんが.

使用環境は以下の通りです.

FreeBSD-3.3R
namazu-2.0
ChaSen-2.02
detex-2.7
nkf-1.71

マシンは NFS server(ホスト名:hostA) と WWW server(ホスト名:hostB)で構
成されています.
Web データは hostA に実体があり,そのデータのインデックスを hostB に作
ろうとしています.

            NFS
  hostA ---------- hostB
Web データ      Namazu インデックス

hostA のデータはクライアント(hostB)からは root 権限によるアクセスがで
きません.
(owner が root 以外でパーミッションが 600 のファイルにアクセスしようと
すると permission denied となります)

上記環境で以下のようにインデックスを作ろうとすると,パーミッションが
600 のファイルをインデックス化するところで permission denied が表示さ
れたあと mknmz が終了してしまいインデックスがつくられません.

# hostname
hostB
# whoami
root
# ls -l /www/test.txt
-rw-------  1 tada  students  364 Feb 25 10:32 /www/test.txt
# pwd
/usr/local/namazu/index
# mknmz /www
10個のファイルがインデックス作成の対象として見つかりました
1/10 - /www/FreeBSD.html [text/html]
...snip
3/10 - /www/dvi2ps.txt [text/plain]
mknmz: /www/test.txt: Permission denied
# 

調べたところ,ファイルオープンでエラーが出ると終了するようになっていた
ので,util.pl を書き換えて終了しないようにしました.

これでインデックスが作られるようになったのですが,エラーが出たら終了と
いうのは 2.0 の方針なんでしょうか? エラーの種類によっては終了すべきも
のもあるでしょうが,パーミッション程度のことなら無視して処理を続けて欲
しいのですが.

#それより namazu 用のアカウントを作るべきなのかな

#そのほか気になったこと
#1.メーリングリストの検索ページを www.namazu.org にリンクして欲しいです.
#2.namazu.cgi の CGI 変数 lang が manual.html に書かれていません.無く
#  なったのかと思いました.
#3.perl は全然使ったことがないのではずしてるかも知れませんが,
#  mknmzrc-sample の $conf::WAKATI  = $CHASEN; は
#  $conf::WAKATI  = $conf::$CHASEN; ではないのでしょうか?
#  元のままだと
#  Use of uninitialized value at /usr/local/bin/mknmz line 735
#  と怒られるのですが.

--- util.pl.org	Fri Feb 25 10:45:20 2000
+++ util.pl	Fri Feb 25 19:08:52 2000
@@ -116,7 +116,7 @@
 	    return '';
 	}
     } else {
-	$fh = efopen($arg);
+	$fh = fopen($arg) || return '';
     }
 
     my $cont = "";
@@ -141,7 +141,7 @@
 	    return '';
 	}
     } else {
-	$fh = efopen($arg);
+	$fh = fopen($arg) || return 0;
     }
     my $size = -s $fh;
     return $size;

---
Yasunori Tada<tada@xxxxxxxxxxxxxxxxxxxxxxxx>