[#16211] pstore.rb and sync.rb — Kazuhiro NISHIYAMA <zn@...>

西山和広です。

19 messages 2002/03/04
[#16245] Re: pstore.rb and sync.rb — keiju@... (石塚圭樹) 2002/03/07

けいじゅ@日本ラショナルソフトウェアです.

[#16240] [Oni Guruma] look behind — nobu.nakada@...

なかだです。

14 messages 2002/03/07

[#16283] ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

124 messages 2002/03/08
[#16307] Re: ライブラリ拡大計画 — TAKAHASHI Masayoshi <maki@...> 2002/03/10

高橋征義です。

[#16317] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/11

まつもと ゆきひろです

[#16318] Re: ライブラリ拡大計画 — Tanaka Akira <akr@...17n.org> 2002/03/11

In article <1015827556.101112.6552.nullmailer@ev.netlab.jp>,

[#16320] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/11

まつもと ゆきひろです

[#16347] Re: ライブラリ拡大計画 — Minero Aoki <aamine@...> 2002/03/12

あおきです。

[#16308] Re: ライブラリ拡大計画 — WATANABE Hirofumi <eban@...> 2002/03/11

わたなべです。

[#16626] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/27

まつもと ゆきひろです

[#16628] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/03/27

At Wed, 27 Mar 2002 18:56:03 +0900,

[#16629] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/27

まつもと ゆきひろです

[#16647] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/03/28

At Thu, 28 Mar 2002 00:12:49 +0900,

[#16674] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/03/29

At Thu, 28 Mar 2002 23:45:49 +0900,

[#16675] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/29

まつもと ゆきひろです

[#16680] Re: ライブラリ拡大計画 — nobu.nakada@... 2002/03/29

なかだです。

[#16681] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/29

まつもと ゆきひろです

[#16683] Re: ライブラリ拡大計画 — nobu.nakada@... 2002/03/29

なかだです。

[#16687] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/03/30

At Fri, 29 Mar 2002 20:32:17 +0900,

[#16718] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/04/02

At Sun, 31 Mar 2002 02:20:04 +0900,

[#16371] Re: ライブラリ拡大計画 — Takaaki Tateishi <ttate@...> 2002/03/13

At Fri, 8 Mar 2002 18:05:01 +0900,

[#16373] Re: ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto) 2002/03/14

まつもと ゆきひろです

[#16397] Re: ライブラリ拡大計画 — nobu.nakada@... 2002/03/14

なかだです。

[#16404] Re: ライブラリ拡大計画 — Tanaka Akira <akr@...17n.org> 2002/03/14

In article <20020314133401.3918E10F3@sharui.nakada.kanuma.tochigi.jp>,

[#16406] Re: ライブラリ拡大計画 — nobu.nakada@... 2002/03/15

なかだです。

[#16290] IO#gets improvement — nobu.nakada@...

なかだです。

27 messages 2002/03/08
[#16291] Re: IO#gets improvement — Tanaka Akira <akr@...17n.org> 2002/03/08

In article <20020308131426.8C36123B9@sharui.nakada.kanuma.tochigi.jp>,

[#16294] Re: IO#gets improvement — nobu.nakada@... 2002/03/09

なかだです。

[#16549] Re: IO#gets improvement — nobu.nakada@... 2002/03/23

なかだです。

[#16486] mswin32 configuration — nobu.nakada@...

なかだです。

20 messages 2002/03/19
[#16488] Re: mswin32 configuration — "U.Nakamura" <usa@...> 2002/03/19

こんにちは、なかむら(う)です。

[#16489] Re: mswin32 configuration — nobu.nakada@... 2002/03/19

なかだです。

[#16490] Re: mswin32 configuration — "U.Nakamura" <usa@...> 2002/03/19

こんにちは、なかむら(う)です。

[#16545] BigFloat — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

51 messages 2002/03/23
[#16547] Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/03/23

At Sat, 23 Mar 2002 22:55:45 +0900,

[#16548] Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/03/23

At Sun, 24 Mar 2002 02:20:26 +0900,

[#16550] Re: BigFloat — Tanaka Akira <akr@...17n.org> 2002/03/23

In article <867ko3yyik.wl@archon.local.idaemons.org>,

[#16551] Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/03/23

At Sun, 24 Mar 2002 04:21:59 +0900,

[#16552] Re: BigFloat — Tanaka Akira <akr@...17n.org> 2002/03/23

In article <864rj7yljs.wl@archon.local.idaemons.org>,

[#16553] Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/03/23

At Sun, 24 Mar 2002 07:44:15 +0900,

[#16560] Re: BigFloat — Tanaka Akira <akr@...17n.org> 2002/03/24

In article <861yeazvtg.wl@archon.local.idaemons.org>,

[#16565] Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/03/24

At Sun, 24 Mar 2002 15:41:18 +0900,

[#16575] Re: if Re: BigFloat — keiju@... (石塚圭樹) 2002/03/24

けいじゅ@日本ラショナルソフトウェアです.

[#16715] Re: if Re: BigFloat — keiju@... (石塚圭樹) 2002/04/02

けいじゅ@日本ラショナルソフトウェアです.

[#16725] Re: if Re: BigFloat — "Akinori MUSHA" <knu@...> 2002/04/02

At Tue, 2 Apr 2002 16:16:04 +0900,

[#16789] Re: if Re: BigFloat — "Shigeo Kobayashi" <shigeo@...> 2002/04/08

[#16805] Re: if Re: BigFloat — Shin-ichiro HARA <sinara@...> 2002/04/09

原です。

[#16811] Re: if Re: BigFloat — "Shigeo Kobayashi" <shigeo@...> 2002/04/09

[#16555] File.fnmatch (Re: [rubyist:1286] Re: ARGV の機能) — Koji Arai <JCA02266@...>

新井です。

11 messages 2002/03/24

[#16593] Oniguruma and multibyte character literal — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

15 messages 2002/03/25
[#16594] Re: Oniguruma and multibyte character literal — matz@... (Yukihiro Matsumoto) 2002/03/25

まつもと ゆきひろです

[#16652] [OniGuruma] nested repeat operator — "K.Kosako" <kosako@...>

[ruby-talk:36959]で指摘された

31 messages 2002/03/29
[#16669] Re: [OniGuruma] nested repeat operator — Tanaka Akira <akr@...17n.org> 2002/03/29

In article <20020329022810.68F9E17@helium.ruby-lang.org>,

[#16676] Re: [OniGuruma] nested repeat operator — "K.Kosako" <kosako@...> 2002/03/29

Tanaka Akiraさんの<hvohemzoku6.fsf@coulee.a02.aist.go.jp>から

[ruby-dev:16609] control uid/gid

From: nagai@...
Date: 2002-03-26 06:35:56 UTC
List: ruby-dev #16609
永井@知能.九工大です.

現実逃避で,メソッド名等を考え直してみました.
考えてみると,何も Process モジュールに
メソッドを用意しなければならないわけでもないので,
Process::UserID.<method> などとしてみた案です.
条件判断用のメソッドは追加になっていますが,
メソッド体系としては前と変っていません.
ぜひ意見をお願いします.

============================================================

uid/gid 操作の生のシステムコールの実装 (ポータビリティは期待できない)

Process::ID_Syscall.setuid(id)
Process::ID_Syscall.seteuid(id)
Process::ID_Syscall.setreuid(rid,eid)

Process::ID_Syscall.setgid(id)
Process::ID_Syscall.setegid(id)
Process::ID_Syscall.setregid(rid,eid)    など

============================================================

uid/gid 操作のために実装するメソッド

Process::UserID.real_id
Process::UserID.effective_id

Process::UserID.set(id)
Process::UserID.set_effective(id)

Process::UserID.exchange_reid

Process::UserID.exchangeable?
Process::UserID.has_saved_id?

Process::UserID.switch_auth
Process::UserID.switch_auth { ... }

-------------------

Process::GroupID.real_id
Process::GroupID.effective_id

Process::GroupID.set(id)
Process::GroupID.set_effective(id)

Process::GroupID.exchange_reid

Process::GroupID.exchangeable?
Process::GroupID.has_saved_id?

Process::GroupID.switch_auth
Process::GroupID.switch_auth { ... }

============================================================

Process::UserID.real_id [Process::GroupID.real_id]

  仕様 : 現在の実ユーザ ID を得る

============================================================

Process::UserID.effective_id [Process::GroupID.effective_id]

  仕様 : 現在の実効ユーザ ID を得る

============================================================

Process::UserID.set(id) [Process::GroupID.set(id)]

  仕様 : 実/実効/保存ユーザ ID のすべてを変更して,
         他のユーザとしての権限を放棄する.
         成功時は id を返す.
         完全放棄できない場合(一部ユーザ ID の変更ができない場合)は
         例外を発生する.
         例外の発生時に,このメソッドを呼び出す前の各ユーザ ID の値が
         保存されているかどうかは保証されない.

  注意 : 以前の Process.uid= とは互換性がないことに注意.
         setreuid(id,-1) によって実装されていたものを用いていたケースは,
         例えば次のように書き換える必要があるだろう.

         Process::UserID.exchange_reid    ;# (r,e,s)==(u1,u2,??) ==> (u2,u1,??)
         Process::UserID.set_effective(id);# (u2,u1,??) ==> (u2,id,??)
         Process::UserID.exchange_reid    ;# (u2,id,??) ==> (id,u2,??)

============================================================

Process::UserID.set_effective(id) [Process::GroupID.set_evective(id)]

  仕様 : 実効ユーザ ID を変更する.
         成功時は id を返す.
         保存ユーザ ID の変化は,Process::UserID.exchageable? が
         true かどうかで決まる.
         定義されない環境では,保存ユーザ ID は変化しない.
         定義されている環境では,id が実ユーザ ID と異なる値に設定された場合,
         保存ユーザ ID は新しい実効ユーザ ID の値に設定される.
         設定できない場合は例外を発生する.

============================================================

Process::UserID.exchange_reid [Process::GroupID.exchange_reid]

  仕様 : 実ユーザ ID と実効ユーザ ID とを入れ換える.
         保存ユーザ ID は新しい実効ユーザ ID と同じになる.
         環境依存により実装されていない場合は例外を発生する.
         戻り値としては,新しい実効ユーザ ID を返す.

============================================================

Process::UserID.exchangeable? [Process::GroupID.exchangeable?]

  仕様 : 実ユーザ ID と実効ユーザ ID との入れ換えが可能な環境かどうか
         (Process::UserID.exchange_reid が実装されているか) を真偽値で返す.
         入れ換え可能なら true を返す.

============================================================

Process::UserID.has_saved_id? [Process::GroupID.has_saved_id?]

  仕様 : 保存ユーザ ID を持つ環境かどうかを真偽値で返す.
         保存ユーザ ID を持つなら true を返す.
         ただし,保存ユーザ ID の有無を明確に判定できない環境では,
         この値は推定値である (誤りの可能性もある) ことに注意が必要.
         現在は,次の条件のいずれかが満足される場合に
         保存ユーザ ID を持つものと判定する.
          ・setresuid を持つ
          ・seteuid を持つ
          ・_POSIX_SAVED_IDS が真として定義されている

============================================================

Process::UserID.switch_auth         [Process::GroupID.switch_auth]
Process::UserID.switch_auth { ... } [Process::GroupID.switch_auth { ... }]

  仕様 : ユーザ権限を(一時的に)変更する.
         ブロックが与えられたならば,権限を移行してそのブロックを実行した後,
         元の権限に復帰する.
         途中で実/実効/保存ユーザ ID を変更しなければ,
         ブロックを与えない呼び出しを二度実行することで,
         権限の一時的変更と元の権限への復帰とが可能となる.
         ブロックが与えられない場合の戻り値は元に戻せる(変更できる) ID 値,
         ブロックが与えられた場合の戻り値はブロックの値を返す.
         実/実効/保存ユーザ ID が二つのユーザ権限を移行できる状態でなければ
         例外を発生する (変更できるのは実ユーザ ID の権限へか,
         保存ユーザ ID の権限へかのいずれかである).
         ブロックを与えた際に,ブロック内でユーザ ID が変更されたなどの理由で
         元の権限に復帰できない場合も例外を発生する.
         保存ユーザ ID を持たない環境では,このメソッドの実行によって
         実ユーザ ID が変化する (ブロックを与えた場合はブロック実行中のみ).

============================================================
-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai@ai.kyutech.ac.jp

In This Thread

Prev Next