setresuidのヘルプ・マニュアル
日本語 英語
setresuid --help
man setresuid
SETRESUID(2) Linux Programmer’s Manual SETRESUID(2)
名前
setresuid, setresgid - ユーザやグループの 実、実効、保存 ID を設定する
書式
#define _GNU_SOURCE
#include
int setresuid(uid_t ruid, uid_t euid, uid_t suid);
int setresgid(gid_t rgid, gid_t egid, gid_t sgid);
説明
setresuid() は呼び出し元のプロセスの実 (real) ユーザーID、実効 (effec-
tive) ユーザーID、保存 set-user-ID を設定する。
非特権ユーザーのプロセスは、その実 UID、実効 UID、保存 set-user-ID を、
現在の実 UID、現在の実効 UID、現在の保存 set-user-ID のどれかに変更する
ことができる:
特権プロセス (Linux では CAP_SETUID ケーパビリティ (capability) を持 つ
プロセス) は、実 UID、実効 UID、保存 set-user-ID を任意の値に設定できる
。
引き数のどれかが -1 の場合はその値は変更されずに残される。
実 UID、実効 UID、保存 set-user-ID にどんな変更が行われたかに関わらず、
フ ァ イ ル システム UID は常に実効 UID (可能であれば変更後の新しい実効
UID) と同じ値に設定される。
全く同じように、 setresgid() は呼び出し元のプロセスの実 GID、実効 GID、
保 存 set-group-ID を設定する (さらにファイルシステム GID を実効 GID と
同じ値に修正する)。非特権プロセスは同様の制限を受ける。
返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適 切
に設定される。
エラー
EAGAIN uid が現在のユーザー ID と違う値で、この呼び出しにより ユーザー
ID がリソース上限 RLIMIT_NPROC を超えてしまう。
EPERM 呼び出したプロセスが特権を持たないのに (CAP_SETUID ケーパビリ テ
ィを持たないのに)、 ID を許されていない値に変更しようとした。
バージョン
Linux ではバージョン 2.1.44 より利用可能になった。
準拠
これらのコールは非標準である。 HP-UX や BSD 系のいくつかにも存在する。
注意
HP-UX や FreeBSD では にプロトタイプが存在する。 Linux では
、glibc 2.3.2 以降でプロトタイプが提供されている。
関連項目
getresuid(2), getuid(2), setfsgid(2), setfsuid(2), setreuid(2),
setuid(2), capabilities(7), credentials(7), feature_test_macros(7)
Linux 2007-07-26 SETRESUID(2)
SETRESUID(2) Linux Programmer’s Manual SETRESUID(2)
NAME
setresuid, setresgid - set real, effective and saved user or group ID
SYNOPSIS
#define _GNU_SOURCE
#include
int setresuid(uid_t ruid, uid_t euid, uid_t suid);
int setresgid(gid_t rgid, gid_t egid, gid_t sgid);
DESCRIPTION
setresuid() sets the real user ID, the effective user ID, and the saved
set-user-ID of the calling process.
Unprivileged user processes may change the real UID, effective UID, and
saved set-user-ID, each to one of: the current real UID, the current
effective UID or the current saved set-user-ID.
Privileged processes (on Linux, those having the CAP_SETUID capability)
may set the real UID, effective UID, and saved set-user-ID to arbitrary
values.
If one of the arguments equals -1, the corresponding value is not
changed.
Regardless of what changes are made to the real UID, effective UID, and
saved set-user-ID, the file system UID is always set to the same value
as the (possibly new) effective UID.
Completely analogously, setresgid() sets the real GID, effective GID,
and saved set-group-ID of the calling process (and always modifies the
file system GID to be the same as the effective GID), with the same
restrictions for non-privileged processes.
RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is
set appropriately.
ERRORS
EAGAIN uid does not match the current UID and this call would bring
that user ID over its RLIMIT_NPROC resource limit.
EPERM The calling process is not privileged (did not have the
CAP_SETUID capability) and tried to change the IDs to values
that are not permitted.
VERSIONS
These calls are available under Linux since Linux 2.1.44.
CONFORMING TO
These calls are non-standard; they also appear on HP-UX and some of the
BSDs.
NOTES
Under HP-UX and FreeBSD the prototype is found in . Under
Linux the prototype is provided by glibc since version 2.3.2.
SEE ALSO
getresuid(2), getuid(2), setfsgid(2), setfsuid(2), setreuid(2),
setuid(2), capabilities(7), credentials(7), feature_test_macros(7)
COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2007-07-26 SETRESUID(2)