SETEUID
Section: Linux Programmer's Manual (2)
Updated: 2009-10-17
Index
JM Home Page
roff page
名前
seteuid, setegid - 実効ユーザー ID や 実効グループ ID を設定する
書式
#include <sys/types.h>
#include <unistd.h>
int seteuid(uid_t euid);
int setegid(gid_t egid);
glibc 向けの機能検査マクロの要件
(feature_test_macros(7)
参照):
seteuid(),
setegid():
_BSD_SOURCE || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600
説明
seteuid()
は呼び出し元のプロセスの実効ユーザー ID を設定する。
非特権ユーザーのプロセスの場合、実効ユーザー ID に設定できるのは、
実ユーザー ID・実効ユーザー ID・保存 set-user-ID のいずれかだけである。
setegid()
は「ユーザー」ではなく「グループ」に対して全く同じことを行う。
返り値
成功した場合は 0 が返される。
エラーの場合は -1 が返され、
errno
が適切に設定される。
エラー
- EPERM
-
呼び出し元のプロセスに特権がなく、
euid
(egid)
が実ユーザー (グループ) ID、または実効ユーザー (グループ) ID、
保存 set-user-ID (保存 set-group-ID) のいずれでもではない
(Linux においては、
seteuid()
では
CAP_SETUID
ケーパビリティ (capability) が、
setegid()
では
CAP_SETGID
ケーパビリティがない場合に、特権がないと判断される)。
準拠
4.3BSD, POSIX.1-2001.
注意
実効ユーザー (グループ) ID を保存 set-user-ID (保存 set-group-ID) に
設定できるのは、Linux 1.1.37 (1.1.38) 以降である。
全てのシステムにおいて
_POSIX_SAVED_IDS
をチェックすべきである。
libc4, libc5, glibc 2.0 では、
seteuid(euid)
は
setreuid(-1, euid)
と等価であり、保存 set-user-ID を変更するかもしれない。
glibc 2.1 では、
setresuid(-1, euid, -1)
と等価であり、保存 set-user-ID 変更しない。
同様のことが
setegid()
にも言える。
POSIX.1 では、
seteuid()
(setegid())
で、
euid
(egid)
として現在の実効ユーザ (グループ) ID と同じ値を指定可能である
必要はないとされており、いくつかの実装では
euid
(egid)
として現在の実効ユーザ (グループ) ID と同じ値を
指定することができない。
関連項目
geteuid(2),
setresuid(2),
setreuid(2),
setuid(2),
capabilities(7),
credentials(7)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 03:26:54 GMT, April 25, 2010