kazmax - Linux で自宅サーバー

seteuid - システムコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. エラー
  6. 注意
  7. 準拠
  8. 関連項目

名前

seteuid, setegid - 実効ユーザー ID と 実効グループ ID を設定する

書式

#include <sys/types.h>
#include <unistd.h>
int seteuid(uid_t euid );
int setegid(gid_t egid );

説明

seteuid ()はカレントプロセスの実効ユーザー ID を設定する。 非特権ユーザーのプロセスは、ユーザー ID を 実ユーザー ID・実効ユーザー ID・保存 set-user-ID にしか設定できない。
setegid ()でも、「ユーザー」の代わりに「グループ」に対して全く同じことが行われる。

返り値

成功した場合は 0 が返される。 エラーの場合は -1 が返され、 errno が適切に設定される。

エラー

EPERM
カレントプロセスに特権がなく (Linux では seteuid ()の場合に CAP_SETUID ケーパビリティ (capability) がなく、 setegid ()の場合に CAP_SETGID ケーパビリティがない)、 euid (または egid )が実ユーザー (グループ) ID、または実効ユーザー (グループ) ID、 または保存 set-user-ID (保存 set-group-ID) ではない。

注意

実効ユーザー (グループ) ID を保存 set-user-ID (保存 set-group-ID) に 設定することが、Linux 1.1.37 (1.1.38) から可能になった。 全てのシステム上で、_POSIX_SAVED_IDS をチェックすべきである。

libc4, libc5, glibc2.0 では seteuid( euid )setreuid(-1, euid ) と同じなので、保存 set-user-ID を変更する。 glibc2.1 では setresuid(-1, euid ,-1) と同じなので、保存 set-user-ID を変更しない。 同様な注意点が setegid ()にもある。

準拠

4.3BSD, POSIX.1-2001.

関連項目