[#15040] WeakRef and load(file, true) — Shugo Maeda <shugo@...>
前田です。
[#15043] puts array — "Akinori MUSHA" <knu@...>
puts に配列を与えたときの挙動が最新の 1.7 では変わっていて
こんにちは、なかむら(う)です。
At Wed, 7 Nov 2001 09:54:03 +0900,
[#15044] resolv.rb — Kazuhiro NISHIYAMA <zn@...>
Resolv::Hostsのデフォルトのファイル名ってWindows 9x環境だと
[#15047] can't set chomped String to environment — nobu.nakada@...
なかだです。
まつもと ゆきひろです
[#15067] rb_eval_string — OJ <oj@...7.com>
OJです。
なかだです。
OJです。
なかだです。
OJです。
わたなべです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
[#15100] Using static mark stack, GC is slow. — sheepman <sheepman@...>
こんばんは
[#15101] [bug?] pty causes segv by getting SIGINT — akira yamada / やまだあきら <akira@...>
まつもと ゆきひろです
[#15102] Gtk::Object#flags!= — akira yamada / やまだあきら <akira@...>
[#15116] rubylib_mangle whitespace — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
まつもと ゆきひろです
わたなべです。
[#15132] uri.rb — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#15174] strange behavior about PTY.spawn — akira yamada / やまだあきら <akira@...>
まつもと ゆきひろです
[#15175] ruby-mingw32 configuration — HIDAKA Takahiro <cv8t-hdk@...>
ひだかです。
わたなべです。
[#15239] gc.c (gc_mark_rest): declare work area as static — "K.Kosako" <kosako@...>
現在のGCのアルゴリズム(matz-sheepman)を少し変更しようと思って、
On Thu, 22 Nov 2001 16:21:17 +0900
sheepmanさんの<20011122202749.56b8eb49.sheepman@tcn.zaq.ne.jp>から
[#15251] Re: [ruby-ext:01999] Re: syslog module is becoming ready — "Akinori MUSHA" <knu@...>
というわけで 1.7 に syslog モジュールを入れました。
なかだです。
ただただしです。
At Mon, 26 Nov 2001 22:30:03 +0900,
In article <86r8ql90zt.wl@archon.local.idaemons.org>,
At Mon, 26 Nov 2001 23:07:30 +0900,
あおきです。
At Wed, 28 Nov 2001 07:58:55 +0900,
あおきです。
そうそう、 optparse も標準に入っていると便利だと思うのですが
まつもと ゆきひろです
In message <1007018271.960435.20342.nullmailer@ev.netlab.jp>
まつもと ゆきひろです
[#15270] ruby on NetBSD — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
In message <20011128181510.3D11.USA@osb.att.ne.jp>
こんにちは、なかむら(う)です。
In message <20011128182726.3D14.USA@osb.att.ne.jp>
なかだです。
こんにちは、なかむら(う)です。
In message <20011129183834.3790.USA@osb.att.ne.jp>
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
取り込み、ありがとうございます。
こんにちは、なかむら(う)です。
[#15292] Re: m17n ruby 特に TRON 文字コード — TOYOFUKU Chikanobu <toyofuku@...>
豊福です。
[#15298] time.rb — Tanaka Akira <akr@...17n.org>
というわけで、timex.rb 改め time.rb が rough に入ったのでご意見募集です。
In article <hvovgftkgy7.fsf@coulee.a02.aist.go.jp>,
まつもと ゆきひろです
まつもと ゆきひろです
In article <1009298477.998171.30253.nullmailer@ev.netlab.jp>,
[ruby-dev:15105] Re: setuid and seteuid
永井@知能.九工大です.
From: Tanaka Akira <akr@m17n.org>
Subject: [ruby-dev:15099] Re: setuid and seteuid
Date: Sat, 10 Nov 2001 16:01:33 +0900
Message-ID: <hvo3d3np0sc.fsf@coulee.a02.aist.go.jp>
akr> 私は、Process.uid=, Process.euid= という API は捨てるべきだと思ってい
akr> ます。(非推奨、ということです。べつに消せとはいいません。)
akr>
akr> 私は Programming Perl で ($<,$>) = ($>,$<); が setreuid を呼び出すとい
akr> う記述を見て非常に大きな違和感を感じた人間なので、同じように 2つの独立
akr> した変数を想起させる Process.uid=, Process.euid= にも同様な違和感を覚
akr> えます。
なぜ「2つの独立した変数を想起」させてはダメなんでしょう?
setuid と seteuid という C の関数名も違和感がありますか?
それとも Process.uid= はダメだけど,
Process.setuid なら OK というような話しでしょうか?
akr> In article <20010906174440D.nagai@ai.kyutech.ac.jp>,
akr> nagai@ai.kyutech.ac.jp writes:
akr> > # 統一しなくてもいいのなら,極論としては,
akr> > # setuid や setreuid など,すべてを用意するだけ用意して,
akr> > # それが存在しない環境では例外発生というのでも
akr> > # いいってことになりますよね.(^_^)
akr> という極論を提供し、さらに、良く使われるであろう 2つの用途
akr> * 権限の完全放棄(setuid)
akr> * 権限の一時放棄(seteuid ないしは setreuid)
akr> について統一した API を実装するライブラリを提供するのがいいだろう、と
akr> 思っています。
「setuid や setreuid など,すべてを用意」するようにすると,
スクリプトのポータビリティが著しく低下しますが,
それは構わないとのお考えですか?
また,統一 API は,具体的にはどのような形ででしょうか?
Process.uid= を setuid にすれば OK という話でしょうか?
検討結果の通り,Process.uid= の重要性は極めて低下
(euid= と swap_id とで実装可能) していますから,
Process.uid= で setreuid を優先的に使うのが気に入らないというのなら,
setuid を優先的にしても構いません.
ただし,過去との互換性に問題が出ることになりますが,
その問題に目をつぶってでも変更するだけの意義はありますか?
akr> また、権限の一時放棄で setreuid を使う場合は、exec を行なうするメソッ
akr> ドにも手を入れて、exec 後に権限が残らないような方法を提供するのがいい
akr> だろうと思っています。つまり「詳解 UNIX プログラミング」の UUCP の例の
akr> 「execする前に実ユーザ ID を普通のユーザ ID に設定する必要がある」とい
akr> うところを自動的にやろう、というわけですが。
逆に exec 時に権限を残したいケースもあるでしょうから,
これはプログラマが責任を持つべき部分という気がします.
akr> suid-ruby に setreuid - それも SUSv2 からは読みとれないような仕様のや
akr> つ - が必要なのはそれはそうなのでしょう。しょうがないので使うしかない
akr> と思います。ただ、それが意図した挙動になっているかどうかはちゃんと確認
akr> したいところですし、ついでにいえば setresuid があるならそちらを使いた
akr> いですね。
その「意図した挙動になっているか」の検討のために,
長々と思考過程を書かねばならなかったわけですが.(^_^;
akr> また、私はこういう話は自明なくらいがちょうどいい、と思っています。なん
akr> せセキュリティの話ですから、比較的簡単に正しさが納得できるのが望ましい
akr> というわけです。つまり、長々と思考過程を書かないと議論できないような仕
akr> 様は個人的にはそれだけで失格です。このような観点から見ると、私の案は
akr>
akr> (極論を実装することにより)実行可能なことが C と同じになる。
akr> これにより C でのセキュリティの議論・考察が再利用できる。
akr>
akr> という利点があります。
いえ,この「C と同じになる」ができないというのが問題の根底です.
C での議論は「set-uid ビットが有効」というのが
前堤になっています.(よね?)
スクリプトに対して set-uid ビットが無効であるために,
正式に suid-ruby が作られるまでは,
setuid + seteuid では「一般ユーザでの権限の一時放棄」
(例えば foo と uucp の往復) が不可能です.
長々と思考過程を書く必要があった理由の一つは,この事実の確認です.
もちろん,ruby のバイナリを様々なユーザ名義でコピーして,
それぞれに set-uid ビットを立てれば可能ではありますが,
そんなことをしたらとんでもないことになるのは明らかですよね.(^_^)
例えば,foo と bar (いずれも root ではない) の二つの権限で
動くデーモンを ruby で作りたいと思ったらどうでしょう?
suid-ruby がない現在は,root としてスクリプトを起動し,
その中で (実/実効/保存) = (foo/bar/bar) の状態を作り出した後,
不要なメソッドを潰してしまうということになると思います.
# 例えば Process.swap_uid だけを残して
# Process.uid= と Process.euid= を消すとかです.
そう考えると,
「では,必要な情况を作り出すのに最低限必要な
メソッド集合はどのようなものか」
を検討する必要があります.
これが,長々と思考過程を書く必要があった理由の二つめです.
で,あの思考過程での検討の結果として残ったのが,あの 3 種です.
検討結果からは「Process.uid= もなくていい」だったと思いますが,
過去との互換性のために残した次第です.
まぁ,保存 ID を持ちながら,
setreuid が保存 ID に影響しないという環境が
想定外になっていたのは事実ですが.(^_^;
ちなみに,「保存 ID を持ちながら,
setreuid が保存 ID に影響しないという環境」については,
(r r r) からのスタートで,
--------------------------------------
(01) 1 1 1 : setuid(1)
(10) r 1 1 : 到達不能
(11) 1 r r : seteuid(1) + setreuid(1,r)
(12) 1 2 2 : 到達不能
(13) 2 1 1 : 到達不能
(14) 2 r r : seteuid(2) + setreuid(2,r)
(20) r r 1 : 到達不能
(21) r 1 r : seteuid(1) or setreuid(-1,1)
(22) 1 r 1 : 到達不能
(23) 1 1 r : setreuid(1,1)
(30) 1 1 2 : 到達不能
(31) 2 2 1 : 到達不能
(32) 1 2 1 : 到達不能
(40) 1 2 r : seteuid(1) + setreuid(1,r) + seteuid(2)
(41) 2 1 r : seteuid(2) + setreuid(2,r) + seteuid(1)
--------------------------------------
ということになります.
特徴としては,root で起動した際に
「特定ユーザの権限になる以外では,root 権限を放棄できない」
です.
suid-ruby で想定される (1 r r) から出発しても同じです.
正直なところ,能力不足で基準にはできないレベルと思います.
# やっぱり,「とりあえず実装してみよう!」なんですかね?(^_^;
# どうやって試験・確認するかも問題かも.
--
永井 秀利 (九工大 知能情報)
nagai@ai.kyutech.ac.jp