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/ に書かれている。