Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       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() にも言えるが、 glibc 2.2 か 2.3 で、 実装が setregid(-1, egid) から  setresgid(-1,
       egid, -1) へ変更された点だけが違う (どの glibc バージョンで変更が行われたかは、ハードウェアアーキテクチャ
       によって異なる)。

       POSIX.1 では、 seteuid()  (setegid())  で、 euid (egid)  として現在の実効ユーザ (グループ) ID  と同じ値を
       指定可能である  必要はないとされており、いくつかの実装では euid (egid)  として現在の実効ユーザ (グループ)
       ID と同じ値を 指定することができない。

関連項目

       geteuid(2), setresuid(2), setreuid(2), setuid(2), capabilities(7), credentials(7)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。