スポンサーリンク

SETREUID(2) FreeBSD システムコールマニュアル SETREUID(2)

名称

setreuid − 実ユーザ ID と実効ユーザ ID を設定する

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <unistd.h>

int

setreuid(uid_t ruid, uid_t euid);

解説

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

実ユーザ ID が変更された場合 (つまり ruid が -1 ではない)、もしくは実効 ユーザ ID がその実ユーザ ID 以外へと変更された場合、退避ユーザ ID はその 実効ユーザ ID へ設定されます。

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

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

戻り値

関数 setreuid() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。

エラー

       [EPERM]

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

関連項目

getuid(2), issetugid(2), seteuid(2), setuid(2)

歴史

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

FreeBSD 10.0 February 8, 2001 FreeBSD 10.0

スポンサーリンク