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.65 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。