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.

Computer science would have progressed much further and faster if all of the time and effort that has been spent maintaining and nurturing Unix had been spent on a sounder operating system.
— The Unix Haters' handbook