SETRESUID(2) | FreeBSD System Calls Manual | SETRESUID(2) |
名称
getresgid, getresuid, setresgid, setresuid — 実ユーザ ID、実効ユーザ ID と退避ユーザ ID または実グループ ID、実効グループ ID と退避グループ ID を取得するか、または設定するライブラリ
Standard C Library (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 つと一致しなければならないという点で制限されます。
引数として -1 を渡すことによって、対応する値は、変更されないままとなります。
getresgid() と getresuid() 呼び出しは、それぞれ、現在のプロセスの実グループ ID、実効グループ ID と退避グループ ID および実ユーザ ID、実効ユーザ ID と退避ユーザ ID を検索します。
戻り値
Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.エラー
- [ EPERM]
- 呼び出しているプロセスが、特権がなく、現在の実 ID、現在の実効 ID でも現在の退避 ID でもない値に 1 つ以上の 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 ではじめて登場しました。April 13, 2001 | FreeBSD |