SETREGID(2)

名前
setregid, setegid - 実(real) と 実効(effective)グループID を設定する

書式
#include <unistd.h>

int setregid(gid_t rgid, gid_t egid);
int setegid(gid_t egid);

説明
setregid は現在のプロセスの実(real)グループID と 実効(effective)グループID を 設定する。非特権ユーザーが実グループID を実効グループID に変化させた りできる。 Linux 1.1.38 より前は、 setregid や setegid が使用する保存(saved)グループID パラダイムは壊れている。 1.1.38 から、保存グループIDから実効グループID を設定することが 可能になった。 スーパー・ユーザーのみが他の変更ができる。 実グループID や実効グループID に -1 を与えた場合は、 システムはその ID を変更しない。 現在(ibc-4.x.x)では、 setegid(egid) は機能的に setregid(-1, egid) と等価である。 もし実グループID が変更されたり、実効グループID が前の実グループID と 異った値に設定された場合、保存グループIDには新しい実効グループIDの値が 設定される。

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

エラー

EPERM
    現在のプロセスがスーパー・ユーザーでなく、変更が (i) 実効グループID と 実グループID を入れ換える。 (ii) 片方の値を他方に設定する。 (iii) 実効グループID に保存グループID の値を設定する。 のいずれでもない。

準拠
BSD 4.3 ( setregid 関数コールは BSD 4.2 で現れた。)

関連項目
getgid(2), setgid(2)