The Process::Sys
module contains UID
and GID functions which provide direct bindings to
the system calls of the same names instead of the more-portable versions of
the same functionality found in the Process
,
Process::UID
, and Process::GID
modules.
Returns the effective group ID for this process. Not available on all platforms.
Process.egid #=> 500
static VALUE proc_getegid(VALUE obj) { rb_gid_t egid = getegid(); return GIDT2NUM(egid); }
Returns the effective user ID for this process.
Process.euid #=> 501
static VALUE proc_geteuid(VALUE obj) { rb_uid_t euid = geteuid(); return UIDT2NUM(euid); }
Returns the (real) group ID for this process.
Process.gid #=> 500
static VALUE proc_getgid(VALUE obj) { rb_gid_t gid = getgid(); return GIDT2NUM(gid); }
Returns the (real) user ID of this process.
Process.uid #=> 501
static VALUE proc_getuid(VALUE obj) { rb_uid_t uid = getuid(); return UIDT2NUM(uid); }
Returns true
if the process was created as a result of an
execve(2) system call which had either of the setuid or setgid bits set
(and extra privileges were given as a result) or if it has changed any of
its real, effective or saved user or group IDs since it began execution.
static VALUE p_sys_issetugid(VALUE obj) { rb_secure(2); if (issetugid()) { return Qtrue; } else { return Qfalse; } }
Set the effective group ID of the calling process to integer. Not available on all platforms.
static VALUE p_sys_setegid(VALUE obj, VALUE id) { check_gid_switch(); if (setegid(NUM2GIDT(id)) != 0) rb_sys_fail(0); return Qnil; }
Set the effective user ID of the calling process to integer. Not available on all platforms.
static VALUE p_sys_seteuid(VALUE obj, VALUE id) { check_uid_switch(); if (seteuid(NUM2UIDT(id)) != 0) rb_sys_fail(0); return Qnil; }
Set the group ID of the current process to integer. Not available on all platforms.
static VALUE p_sys_setgid(VALUE obj, VALUE id) { check_gid_switch(); if (setgid(NUM2GIDT(id)) != 0) rb_sys_fail(0); return Qnil; }
Sets the (integer) real and/or effective group IDs of the current process
to rid and eid, respectively. A value of -1
for either means to leave that ID unchanged. Not available on all
platforms.
static VALUE p_sys_setregid(VALUE obj, VALUE rid, VALUE eid) { check_gid_switch(); if (setregid(NUM2GIDT(rid),NUM2GIDT(eid)) != 0) rb_sys_fail(0); return Qnil; }
Sets the (integer) real, effective, and saved user IDs of the current
process to rid, eid, and sid respectively. A
value of -1
for any value means to leave that ID unchanged.
Not available on all platforms.
static VALUE p_sys_setresgid(VALUE obj, VALUE rid, VALUE eid, VALUE sid) { check_gid_switch(); if (setresgid(NUM2GIDT(rid),NUM2GIDT(eid),NUM2GIDT(sid)) != 0) rb_sys_fail(0); return Qnil; }
Sets the (integer) real, effective, and saved user IDs of the current
process to rid, eid, and sid respectively. A
value of -1
for any value means to leave that ID unchanged.
Not available on all platforms.
static VALUE p_sys_setresuid(VALUE obj, VALUE rid, VALUE eid, VALUE sid) { check_uid_switch(); if (setresuid(NUM2UIDT(rid),NUM2UIDT(eid),NUM2UIDT(sid)) != 0) rb_sys_fail(0); return Qnil; }
Sets the (integer) real and/or effective user IDs of the current process to
rid and eid, respectively. A value of -1
for
either means to leave that ID unchanged. Not available on all platforms.
static VALUE p_sys_setreuid(VALUE obj, VALUE rid, VALUE eid) { check_uid_switch(); if (setreuid(NUM2UIDT(rid),NUM2UIDT(eid)) != 0) rb_sys_fail(0); return Qnil; }
Set the real group ID of the calling process to integer. Not available on all platforms.
static VALUE p_sys_setrgid(VALUE obj, VALUE id) { check_gid_switch(); if (setrgid(NUM2GIDT(id)) != 0) rb_sys_fail(0); return Qnil; }
Commenting is here to help enhance the documentation. For example, sample code, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.