From: Kazuhiro NISHIYAMA Date: 2002-05-15T16:25:46+09:00 Subject: [ruby-dev:17106] Re: control groups 西山和広です。 In <200205140354.g4E3sEF03490@edge.sky.yamashina.kyoto.jp> On Tue, 14 May 2002 12:54:22 +0900 Takahiro Kambe wrote: > > Process.euid = Process.uid = Process.egid = Process.gid = 1000 これはwebrick/util.rbのWEBrick::Utils::suの処理を省略したものです。 > これと同じことをC言語で書いただけでも、補助グループは変わらないと思い > ます。簡単にはinitgroups(3)、最終的にはsetgroups(2)による処理を行う必 > 要があって、単純に実行/実効グループの処理に留まりません。 はい、そこまではわかりました。 > initgroups(3)かsetgroups(2)を実行する新しいメソッドが必要ではないかと > 思います。 WEBrickのように起動時には(port 80を使うため)root権限が必要で rubyスクリプト中でroot権限を捨てたいときにグループの権限を 完全に捨てきれないというのが問題だと思ったのが背景です。 そこで --- Process.groups getgroups(2)の結果をgidの配列で返す。 --- Process.groups=(groups=[Process.egid,Process.gid].uniq) setgroups(2)で設定を行う。 の2つを提案したいと思います。 -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA)