SETRESUID(2)

名称
getresgid, getresuid, setresgid, setresuid - ユーザまたはグループの実 ID、実効 ID、退避 ID を取得もしくは設定する

ライブラリ
libc

書式
<sys/types.h> <unistd.h> int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid) int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid) int setresgid(gid_t rgid, gid_t egid, gid_t sgid) int setresuid(uid_t ruid, uid_t euid, uid_t suid)

解説
setresuid() システムコールは、 現在のプロセスのユーザの実 ID、実効 ID、退避 ID をセットします。 同様に setresgid() はグループの実 ID、実効 ID、退避 ID をセットします。

特権を持つプロセスは、これらの ID を任意の値にセットできます。 特権を持たないプロセスは、新しい ID のそれぞれが現在の ID のうちの いずれかと一致しなければならないという制限を受けます。

値を変更したくない場合は、対応する引数に -1 を渡します。

getresgid() 呼び出しと getresuid() 呼び出しは、それぞれ現在のプロセスのユーザもしくはグループの 実 ID、実効 ID、退避 ID を取得します。

戻り値

エラー

[EPERM]
    呼び出し元プロセスが特権を持っておらず、1 つ以上の ID を 現在の実 ID、実効 ID、退避 ID 以外の値に変更しようとしました。

[EFAULT]
    getresgid() もしくは getresuid() に渡されたアドレスは不正です。

関連項目
getegid(2), geteuid(2), getgid(2), getuid(2), issetugid(2), setgid(2), setregid(2), setreuid(2), setuid(2)

規格
これらのシステムコールを持たないプラットホームはたくさんあります。 これらは GNU libc2 とリンクされた Linux バイナリを FreeBSD でサポートするために用意されています。

歴史
これらの関数は HP-UX ではじめて登場しました。