[#37875] ERB の仕様 — URABE Shyouhei <s-urabe@...>

みなさまはじめまして。

44 messages 2003/07/15
[#37876] Re: ERB の仕様 — Masatoshi SEKI <m_seki@...> 2003/07/15

咳といいます。

[#37877] Re: ERB の仕様 — URABE Shyouhei <s-urabe@...> 2003/07/15

mput です。

[#37879] Re: ERB の仕様 — m_seki@... 2003/07/15

[#37883] Re: ERB の仕様 — URABE Shyouhei <s-urabe@...> 2003/07/16

mput です。

[#37884] Re: ERB の仕様 — m_seki@... 2003/07/16

[#37888] Re: ERB の仕様 — URABE Shyouhei <s-urabe@...> 2003/07/16

mput です。

[#37889] Re: ERB の仕様 — m_seki@... 2003/07/16

[#37890] Re: ERB の仕様 — URABE Shyouhei <s-urabe@...> 2003/07/17

mput です。

[#37891] Re: ERB の仕様 — MoonWolf <moonwolf@...> 2003/07/19

MoonWolfです。

[#37896] Re: ERB の仕様 — MoonWolf <moonwolf@...> 2003/07/20

MoonWolfです。

[#37898] Re: ERB の仕様 — Masatoshi SEKI <m_seki@...> 2003/07/20

咳といいます。

[#37900] Re: ERB の仕様 — MoonWolf <moonwolf@...> 2003/07/20

MoonWolfです。

[#37901] Re: ERB の仕様 — Masatoshi SEKI <m_seki@...> 2003/07/20

咳といいます。

[#37906] control user ID / group ID — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

20 messages 2003/07/20
[#37912] Re: control user ID / group ID — YOKOYAMA Takehiro <tac@...> 2003/07/21

[#37913] Re: control user ID / group ID — Hidetoshi NAGAI <nagai@...> 2003/07/21

永井@知能.九工大です.

[#37916] Re: control user ID / group ID — YOKOYAMA Takehiro <tac@...> 2003/07/21

[#37941] multipart/form-dataのためのcgi.rbの修正 — 堀川 久 <vzw00011@...>

こんにちは。

18 messages 2003/07/22
[#37944] Re: multipart/form-dataのためのcgi.rbの修正 — matz@... (Yukihiro Matsumoto) 2003/07/23

まつもと ゆきひろです

[#37945] Re: multipart/form-dataのためのcgi.rbの修正 — nobu.nakada@... 2003/07/23

なかだです。

[#37948] Re: multipart/form-dataのためのcgi.rbの修正 — matz@... (Yukihiro Matsumoto) 2003/07/23

まつもと ゆきひろです

[#37951] Re: multipart/form-dataのためのcgi.rbの修正 — nobu.nakada@... 2003/07/23

なかだです。

[#37953] Re: multipart/form-dataのためのcgi.rbの修正 — matz@... (Yukihiro Matsumoto) 2003/07/23

まつもと ゆきひろです

[#37954] Re: multipart/form-dataのためのcgi.rbの修正 — nobu.nakada@... 2003/07/23

なかだです。

[ruby-list:37913] Re: control user ID / group ID

From: Hidetoshi NAGAI <nagai@...>
Date: 2003-07-21 04:37:04 UTC
List: ruby-list #37913
永井@知能.九工大です.

From: YOKOYAMA Takehiro <tac@amris.co.jp>
Subject: [ruby-list:37912] Re: control user ID / group ID
Date: Mon, 21 Jul 2003 11:37:45 +0900
Message-ID: <200307210236.AA01410@ludwig.amris.co.jp>
> 実ユーザー/グループID、実効ユーザー/グループIDを操作するシステムコールは、
> 似た名前のものがたくさんあるし、実際に相手にしているOSでは
> 書籍の説明どおりに動かなかったりして苦労が多いので、
> 今回の試みは意義のあることだと思います。

ありがとうございます.

> 実装方法に関して、私が普段使っているBSD/OSの場合の事情ですが、
> 次のような考慮事項があります。

助かります.こういう情報が欲しかったのです.

> 何のパラメーターもつけずに ./configure すると
> 	#define HAVE_SETREUID 1
> となるので、setreuid/setregidを使った実装になるのですが、
> 実際にはsetuid/seteuid / setgid/setegidを使わないと正常に
> IDが切り替わらない場合があります。
   (中略)
> なお、
> 	#elif defined HAVE_SETRGID && defined HAVE_SETEGID
> のときsetrgid/setegidを使っているようですが、そうではなくsetgid/setegidです。

この記述があるのは権限の完全放棄の部分のことかと思います.
setgid があるのでしたら HAVE_SETGID も 1 に定義されているものと
仮定すると,root 権限を持ったユーザがの場合には preprocessor の 
#if の優先順で setgid が用いられますので問題なしですよね?
root 権限を持たない場合,HAVE_SETRESGID が定義されていないと仮定すると,
setregid が用いられることになりますが,ここでの処理が BSD/OS (と 
Mac OS X) では正しく動かないということでしょうか?
念のため,ここでの処理は

  (1) 保存グループ ID が新 ID と等しい.
        実/実効グループ ID が新 ID と等しいかに応じて
        次のいずれかを実行 (等しいところは -1)
           setregid(gid, gid)
           setregid(-1, gid)
           setregid(gid, -1)
           setregid(-1, -1)

  (2) (1) ではなく,実グループ ID も新 ID に等しくない.
        実効グループ ID が新 ID と等しいかに応じて
        次のいずれかを実行 (等しいければ -1)
           setregid(gid, gid)
           setregid(gid, -1)

  (3) (2) でもなく (実グループ ID は等しい),実効グループ ID が異なる.
        実/実効グループ ID の入れ替え (実 != 新 ID && 実効 == 新 ID) 後,
        実グループ ID を変更
           setregid(getegid(), gid)
           setregid(gid, -1)

  (4) (1)〜(3) 以外,つまり,実/実効グループ ID は新 ID に等しいが,
      保存グループ ID だけが異なっている場合.
        保存グループ ID が新 ID になるように操作した後,
        実/実効グループ ID を新 ID に再設定する.
           setregid(-1, 保存ID)
           setregid(保存ID, gid)
           setregid(gid, -1)

ということになっています.
BSD/OS の setregid の仕様上,正しく動かない部分を
教えていただけますと助かります.
それとも,正しく動かないのはここではなくて別の部分でしょうか?
もし可能なら,samba 用の変更パッチを送っていただけると
どういう状況をどう修正しなければならなかったかの理解の
助けになるかと思います.
また,もし BSD/OS だけを特別扱いしなければならなくなった場合,
#if defined(????) には何を指定したら良いかも教えていただけませんか?
-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai@ai.kyutech.ac.jp

In This Thread