スポンサーリンク

SETRESUID(2) FreeBSD システムコールマニュアル SETRESUID(2)

名称

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

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <sys/types.h>
#include <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 を取得します。

戻り値

成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、 グローバル変数 errno が設定されてエラーを示します。

エラー

       [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 ではじめて登場しました。

FreeBSD 10.0 April 13, 2001 FreeBSD 10.0

スポンサーリンク