SETREUID(2)

名称
setreuid - 実ユーザ ID と実効ユーザ ID を設定する

ライブラリ
libc

書式
<unistd.h> int setreuid(uid_t ruid, uid_t euid)

解説
現在のプロセスの実ユーザ ID と実効ユーザ ID が引数に従って 設定されます。 ruid または euid が -1 の場合、現在の UID が指定されたことになります。特権のない ユーザは、実ユーザ ID をその実効ユーザ ID に、または実効ユーザ ID を その実ユーザ ID に変更できます。スーパユーザだけがその他の変更を行えます。

setreuid() 関数は set-user-ID プログラム内で実ユーザ ID と実効ユーザ ID を スワップし、 set-user-ID の値を一時的に放棄するために使われてきました。 この目的は、現在では seteuid() 関数 ( setuid(2) を参照 ) を使用するとより良く達成できます。

実ユーザ ID と実効ユーザ ID を同じ値に設定するときは、標準の setuid() 関数を使用するようにしてください。

戻り値

エラー

[EPERM]
    現在のプロセスがスーパユーザでなく、実効ユーザ ID を実ユーザ ID に 変更する以外の変更が指定されました。

関連項目
getuid(2), issetugid(2), seteuid(2), setuid(2)

歴史
setreuid() システムコールは 4.2BSD で登場しました。