まつもと ゆきひろです.

In message "[ruby-list:2655] Who is 'nobody'"
    on 97/04/07, sinara / blade.nagaokaut.ac.jp <sinara / blade.nagaokaut.ac.jp> writes:
|
|原です。
|
|私のところの古い Linux では、/etc/passwd で nobody の uid が
|-1 になっています。で、
|
|require "etc"
|nobody = Etc.getpwnam('nobody').uid
|
|とすると nobody == 65535 となります。

uidはshort intのはずですから,これはこれで良いはずです.私の
マシン(linux 1.2.13 a.out)でもこうなりました.

|Process.euid = nobody
|
|とすると
|
|./test.rb:701:in `euid=': Invalid argument
|
|などと言われてしまいます。nobody に成りたいのですが対処法は
|あるでしょうか。

私のマシンではエラーにはなりませんでした.ということでOSのバー
ジョンを返るというのはだめ?

でも,良く考えるとsetreuidは-1を特別扱いしますから,もしかし
てエラーは起きなくてもnobodyにはなれないかも.