From: James Gray Date: 2009-01-29T01:00:05+09:00 Subject: [ruby-core:21640] [Bug #1068] Ruby Cannot Handle Some UIDs Bug #1068: Ruby Cannot Handle Some UIDs http://redmine.ruby-lang.org/issues/show/1068 Author: James Gray Status: Open, Priority: Normal This shows the main problem: $ sudo ruby -r etc -e 'n = Etc.getpwnam("nobody"); p n.uid; Process.uid = n.uid' Password: ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-darwin9.4.0] 4294967294 -e:1:in `uid=': bignum too big to convert into `long' (RangeError) from -e:1 The real UID for the nobody user on my system (Mac OS X 10.5.6) is -2. Thus it seems at least some systems use signed UID's and Ruby can't handle that. The above example is from Ruby 1.8.6. Ruby 1.9 does seem to properly switch users, but it still shows the UID's incorrectly: $ sudo ruby_dev -v -r etc -e 'n = Etc.getpwnam("nobody"); p n.uid; Process.uid = n.uid; p Process.uid; p Etc.getpwuid(Process.uid)' ruby 1.9.1 (2008-12-30 patchlevel-0 revision 21203) [i386-darwin9.6.0] 4294967294 4294967294 # ---------------------------------------- http://redmine.ruby-lang.org