SETGID(2) |
Linux Programmer's Manual |
SETGID(2) |
名前
setgid -グループ識別(identity)を設定する
書式
#include <sys/types.h>
#include <unistd.h>
int setgid(gid_t
gid
);
説明
setgid() は呼び出し元のプロセスの実効 (effective) グループID を設定する。もしスーパーユーザーによって呼び出された場合は、実 (real) グループID と保存 (saved) set-group-ID も設定される。
Linux において、
setgid() は
_POSIX_SAVED_IDS をもった POSIX 版のように実装されている。これは set-user-ID-root でない set-group-ID プログラムにそのグループの特権の全て落とし、特権の必要ない仕事をし、本来の実効グループID に安全な方法で再び戻すことを許す。
返り値
成功した場合は 0 が返される。エラーの場合は-1 が返され、
errno が適切に設定される。
エラー
-
EPERM
-
呼び出し元のプロセスに権限がなく (
CAP_SETGID ケーパビリティがなく)、かつ
gid が呼び出し元のプロセスの実グループID と保存セットグループID のどちらとも一致しない。
準拠
SVr4, POSIX.1-2001.
注意
元々の Linux の
setgid() システムコールは 16 ビットのグループ ID だけに対応していた。その後、Linux 2.4 で、32 ビットの ID に対応した
setgid32() が追加された。 glibc の
setgid() のラッパー関数はカーネルバージョンによるこの違いを吸収している。
関連項目
getgid(2),
setegid(2),
setregid(2),
capabilities(7),
credentials(7)
この文書について
この man ページは Linux
man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。