tail head cat sleep
QR code linking to this page

manページ  — SETRESUID

名称

getresgid, getresuid, setresgid, setresuid – ユーザまたはグループの実 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 を渡します。

getresgid() 呼び出しと getresuid() 呼び出しは、それぞれ現在のプロセスのユーザもしくはグループの 実 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]
  呼び出し元プロセスが特権を持っておらず、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 ではじめて登場しました。

SETRESUID (2) April 13, 2001

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

… one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs.
— Robert Firth