OSDN Git Service

(split) LDP: Release pages based on the previous commit
[linuxjm/LDP_man-pages.git] / release / man2 / setfsgid.2
index c2d8af8..d67310e 100644 (file)
@@ -1,5 +1,6 @@
 .\" Copyright (C) 1995, Thomas K. Dyas <tdyas@eden.rutgers.edu>
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
@@ -19,6 +20,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" Created   1995-08-06 Thomas K. Dyas <tdyas@eden.rutgers.edu>
 .\" Modified  2000-07-01 aeb
 .\" Modified, 27 May 2004, Michael Kerrisk <mtk.manpages@gmail.com>
 .\"     Added notes on capability requirements
 .\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
 .\"         all rights reserved.
 .\" Translated Sat Mar  1 00:54:23 JST 1997
 .\"         by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
 .\" Modified 2002-09-24 by Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\" Modified 2005-02-24, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated 2012-04-30, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.\"WORD:       identity                ID
-.\"WORD:       kernel                  ¥«¡¼¥Í¥ë
-.\"WORD:       file system             ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à
-.\"WORD:       effective group ID      ¼Â¸ú¥°¥ë¡¼¥×ID
-.\"WORD:       real group ID           ¼Â¥°¥ë¡¼¥×ID
-.\"WORD:       signal                  ¥·¥°¥Ê¥ë
-.\"WORD:       security hole           ¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë
-.\"WORD:       saved set-group-ID      Êݸ¥»¥Ã¥È¥°¥ë¡¼¥×ID
-.\"
-.TH SETFSGID 2 2008-12-05 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-setfsgid \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥Á¥§¥Ã¥¯¤ËÍѤ¤¤é¤ì¤ë¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë
-.SH ½ñ¼°
-.B #include <unistd.h>
-/* glibc ¤Ç¤Ï <sys/fsuid.h> */
+.TH SETFSGID 2 2013\-08\-08 Linux "Linux Programmer's Manual"
+.SH 名前
+setfsgid \- ファイルシステムのチェックに用いられるグループ ID を設定する
+.SH 書式
+\fB#include <sys/fsuid.h>\fP
 .sp
-.BI "int setfsgid(uid_t " fsgid );
-.SH ÀâÌÀ
-¥·¥¹¥Æ¥à¥³¡¼¥ë
-.BR setfsgid ()
-¤Ï Linux ¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ¹¤ë
-Á´¤Æ¤Î¥¢¥¯¥»¥¹¤Î¥Á¥§¥Ã¥¯¤Ë»ÈÍѤ¹¤ë¥°¥ë¡¼¥× ID¤òÀßÄꤹ¤ë¡£Ä̾ï¤Ï
-.I fsgid
-¤ÎÃͤϼ¸ú (effective) ¥°¥ë¡¼¥×ID ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£¼ÂºÝ¡¢
-¼Â¸ú¥°¥ë¡¼¥× ID ¤¬Êѹ¹¤µ¤ì¤ëÅÙ¤Ë
-.I fsgid
-¤â¤Þ¤¿¿·¤·¤¤¼Â¸ú¥°¥ë¡¼¥×ID ¤ÎÃͤËÊѹ¹¤µ¤ì¤ë¡£
+\fBint setfsgid(uid_t \fP\fIfsgid\fP\fB);\fP
+.SH 説明
+システムコール \fBsetfsgid\fP() は、 呼び出し元のファイルシステムグループ ID \(em
+ファイルシステムへの全てのアクセスのチェックにおいて Linux カーネルが使用するグループ ID \(em
+の値を変更する。通常はファイルシステムグループ ID の値は実効 (effective) グループ ID と同じになる。実際、 実効グループ ID
+が変更される度にファイルシステムグループ ID もまた新しい実効グループ ID の値に変更される。
 
-Ä̾
-.BR setfsuid ()
-¤ä
-.BR setfsgid ()
-¤¬ÌÀ¼¨Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤Î¤Ï¡¢Linux NFS ¥µ¡¼¥Ð¡¼ ¤Î¤è¤¦¤Ë¡¢
-¥Õ¥¡¥¤¥ë¡¦¥¢¥¯¥»¥¹¤ËÍѤ¤¤ë¥æ¡¼¥¶ID / ¥°¥ë¡¼¥×ID ¤òÊѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¬¡¢
-Âбþ¤¹¤ë¼Â(real)/¼Â¸ú(effective) ¥æ¡¼¥¶ID / ¥°¥ë¡¼¥×ID ¤ÏÊѹ¹¤·¤¿¤¯¤Ê¤¤¤è¤¦¤Ê
-¥×¥í¥°¥é¥à¤Ë¸Â¤é¤ì¤ë¡£
-NFS ¥µ¡¼¥Ð¡¼¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¡¢Ä̾ï¤Î¥æ¡¼¥¶ID ¤òÊѹ¹¤¹¤ë¤È¡¢
-¥×¥í¥»¥¹¤ò˾¤Þ¤Ê¤¤¥·¥°¥Ê¥ë¤Ë¤µ¤é¤¹²ÄǽÀ­¤¬¤¢¤ê¡¢
-¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë¤Ë¤Ê¤ë¡£(²¼µ­»²¾È)
+通常、 \fBsetfsuid\fP()  や \fBsetfsgid\fP() を明示的に呼び出すのは、Linux NFS サーバー のように、
+ファイルアクセスに用いるユーザID / グループID を変更しなければならないが、 対応する実(real)/実効(effective) ユーザID /
+グループID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラムで、通常のユーザID を変更すると、
+プロセスを望まないシグナルにさらす可能性があり、 セキュリティホールになる。(下記参照)
 
-.BR setfsgid ()
-¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤«¡¢
-.I fsgid
-¤¬¼Â¥°¥ë¡¼¥×ID¡¢¼Â¸ú¥°¥ë¡¼¥×ID¡¢
-Êݸ¥»¥Ã¥È¥°¥ë¡¼¥×ID (saved set-group-ID)¡¢¸½ºß¤Î
-.I fsgid
-¤ÎÃͤΤ¤¤º¤ì¤«¤Ë°ìÃפ¹¤ë¾ì¹ç¤Ë¤Î¤ßÀ®¸ù¤¹¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¡¢
-.I fsgid
-¤Î°ÊÁ°¤ÎÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï
-.I fsgid
-¤Î¸½ºß¤ÎÃͤòÊÖ¤¹¡£
-.SH ¥Ð¡¼¥¸¥ç¥ó
-¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 1.2 °Ê¹ß¤Î Linux ¤Ë¸ºß¤¹¤ë¡£
+\fBsetfsgid\fP()  は、スーパーユーザによって呼び出された場合か、 \fIfsgid\fP が呼び出し元の実グループID、実効グループID、
+保存セットグループID (saved set\-group\-ID)、現在のファイルシステムグループ ID の値のいずれかに一致する場合にのみ成功する。
+.SH 返り値
+成功時も失敗時も、 この呼び出しは直前の呼び出し元のファイルシステムグループ ID の値を返す。
+.SH バージョン
 .\" This system call is present since Linux 1.1.44
 .\" and in libc since libc 4.7.6.
-.SH ½àµò
-.BR setfsgid ()
-¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£
-.SH Ãí°Õ
-glibc ¤¬°ú¤­¿ô¤¬¥°¥ë¡¼¥×ID ¤È¤·¤ÆÉÔÀµ¤À¤ÈȽÃǤ·¤¿¾ì¹ç¤Ï¡¢
-¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤ï¤º \fIerrno\fP ¤Ë
-.B EINVAL
-¤òÀßÄꤷ¤Æ \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£
+このシステムコールはバージョン 1.2 以降の Linux に存在する。
+.SH 準拠
+\fBsetfsgid\fP()  は Linux 特有であり、移植を想定したプログラムで使用してはいけない。
+.SH 注意
+glibc が引き数がグループID として不正だと判断した場合は、 システムコールを行わず \fIerrno\fP に \fBEINVAL\fP を設定して \-1
+が返される。
 .LP
-¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Æ³Æþ¤µ¤ì¤¿Åö»þ¡¢¥×¥í¥»¥¹¤Ï
-Ʊ¤¸¼Â¸ú¥æ¡¼¥¶ID¤Î¥×¥í¥»¥¹¤Ø¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤¿¡£
-º£Æü¤Ç¤Ï¡¢¥·¥°¥Ê¥ëÁ÷¿®¸¢¸Â¤Î°·¤¤¤Ï¤«¤Ê¤ê°ã¤¦¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
-.SH ¥Ð¥°
-¤¤¤«¤Ê¤ë¼ïÎà¤Î¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤âÊÖ¤µ¤Ê¤¤¡£
-¼ºÇÔ¤·¤¿¾ì¹ç¤Ï (¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï
-.B CAP_SETGID
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤«¤Ã¤¿¤Î¤À¤«¤é) ºÇÄã¤Ç¤â
-.B EPERM
-¤¯¤é¤¤¤ÏÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR kill (2),
-.BR setfsuid (2),
-.BR capabilities (7),
-.BR credentials (7)
+このシステムコールが導入された当時、プロセスは 同じ実効ユーザIDのプロセスへシグナルを送ることができた。
+今日では、シグナル送信権限の扱いはかなり違うものになっている。 なぜ今日では \fBsetfsuid\fP(2) と \fBsetfsgid\fP()
+の両者が不要なのかの議論については \fBsetfsuid\fP(2) を参照のこと。
+
+元々の Linux の \fBsetfsgid\fP() システムコールは
+16 ビットのグループ ID だけに対応していた。
+その後、Linux 2.4 で、32 ビットの ID に対応した
+\fBsetfsgid32\fP() が追加された。
+glibc の \fBsetfsgid\fP() のラッパー関数は
+カーネルバージョンによるこの違いを吸収している。
+.SH バグ
+いかなる種類のエラーメッセージも返さず、 成功した場合も失敗した場合も呼び出しは同じ値を返すため、
+呼び出しが成功したか失敗したかを直接判定することはできない。 その代わり、 直前の \fBsetfsgid\fP() の呼び出しがファイルシステムグループ
+ID を変更したかどうかを判定するために、 呼び出し元はこの後に \fIsetfsgid(\-1)\fP などを呼び出して返り値を見なければならない
+(\fIsetfsgid(\-1)\fP は常に失敗する)。 最低でも、失敗した場合は \fBEPERM\fP くらいは返すべきである (呼び出し元には
+\fBCAP_SETGID\fP ケーパビリティがなかったのだから)。
+.SH 関連項目
+\fBkill\fP(2), \fBsetfsuid\fP(2), \fBcapabilities\fP(7), \fBcredentials\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.54 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。