In message <20010912145212V.nagai / ai.kyutech.ac.jp>
	on Wed, 12 Sep 2001 14:52:17 +0900,
	nagai / ai.kyutech.ac.jp wrote:
> taca> 今時のシステムでは使われなくなった古いものです。NetBSDのオンライン・マ
> taca> ニュアルにはありましたが、setruid(3)やsetrgid(3)となっています。(過去
> taca> への互換のために存在してます。)
> 
> う〜む.そういうものですか...
ちなみにgoogleで探したら一発で見つかって、何のことはない自分のノートの
オンライン・マニュアルにあるやん!  という状況でした。

> では,これらは保存 uid が存在しない環境が想定されているのでしょうか?
4.3BSDはではsaved set uidの概念は存在していません。4.4BSD以降です。

> また,例えば setruid で実 uid を設定できる条件というのは何でしょう?
これは4.2BSDとか4.3BSDのソースでも見ないとわからないでしょう。
今、存在してるのは互換のためだけなので、システムコールであった時代の動
作条件はわかりませんから。オンライン・マニュアルの戻り値のセクションに
は、

     If the user is not the super user, or the uid specified is not the real
     or effective ID, these functions return -1.

     The use of these calls is not portable.  Their use is discouraged; they
     will be removed in the future.

といった記述があります。ちなみにソースを見ると話はもっと簡単で、

	setreuid(ruid, (uid_t)-1)

と同じです。(UTSLってやつですな。)

% wtf UTSL
UTSL: use the source, Luke

--
神戸 隆博(かんべ たかひろ) at home