[Mew-dist 08716] Re: suid root imget without ~/Mail
Hiroto Kagotani
kagotani at example.com
1999年 5月 6日 (木) 17:23:42 JST
> kagotani> RPOP + Mew の環境を作ろうとしているのですが、~/Mail を持たな
> kagotani> い新規のユーザが imget しようとすると、suid root した imget
> kagotani> がフォルダを作ることができずにエラーとなってしまいます。
> kagotani> (im-100 でも im-115 でも)
>
> これって、~ は NFS mount なので、root access が nobody に変換されてしまい、
> うまくいかない、ということでしょうか?
~ は NFS ですが、その問題ではないと思います。
% ls -l /usr/local/bin/imget
-r-sr-xr-x 1 root bin 7595 Nov 28 09:49 /usr/local/bin/imget
% imget
imget: Getting new messages into +inbox....
Insecure dependency in mkdir while running with -T switch at /usr/local/lib/IM/Folder.pm line 358, <POPd> chunk 23.
となります。
% mkdir -p ~/Mail/inbox
% imget
imget: Getting new messages into +inbox....
1 05/06 Kagotani Hirot t t
imget: 1 message(s).
% ls -l ~/Mail/inbox
total 4
-rw------- 1 kagotani staff 677 May 6 15:38 1
ですので、nobody の問題は出ていません。(ちなみに、以上は im-100)
> imget では、まず最初に特権ポートを確保し、root権限を捨ててから
> ファイルアクセスを始めるようにしているつもりなので、仕様的には
> 問題ないと思っているのですが、そもそも perl で root を捨てきれ
> ないようなので、それが問題なのかもしれません。
#!/usr/local/bin/perl
$>=$<;
mkdir $ARGV[0],0777;
を suid root で実行すると、
Insecure dependency in mkdir while running with -T switch at ./suidmkdir line 3.
となるわけですね。root を捨てない場合とはメッセージが異なるようです。
perl のソースをながめてみたりもしましたが、-T を取り消す方法はよくわか
りませんでした。
修正の手間の問題はありますが、
> kagotani> (サーバとの通信だけをするプログラムを imget から切り離す?)
とするのが安全確実でいいような気がします。
こうすれば ScanSbr も suid root imget で使えるようになりますし。
--
籠谷裕人 <kagotani at example.com>
Mew-dist メーリングリストの案内