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/
  に書かれている。