OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / draft / man2 / setfsgid.2
index 2420d18..8b9a82b 100644 (file)
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH SETFSGID 2 2010\-11\-22 Linux "Linux Programmer's Manual"
+.\"
+.\" 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 Mon Sep 23 21:21:54 JST 2000
+.\"         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>
+.\"
+.TH SETFSGID 2 2013\-08\-08 Linux "Linux Programmer's Manual"
 .SH 名前
 setfsgid \- ファイルシステムのチェックに用いられるグループ ID を設定する
 .SH 書式
-\fB#include <unistd.h>\fP /* glibc では <sys/fsuid.h> */
+\fB#include <sys/fsuid.h>\fP
 .sp
 \fBint setfsgid(uid_t \fP\fIfsgid\fP\fB);\fP
 .SH 説明
-システムコール \fBsetfsgid\fP()  は Linux カーネルがファイルシステムに対する 全てのアクセスのチェックに使用するグループ
-IDを設定する。通常は \fIfsgid\fP の値は実効 (effective) グループID と同じになる。実際、 実効グループ ID が変更される度に
-\fIfsgid\fP もまた新しい実効グループID の値に変更される。
+システムコール \fBsetfsgid\fP() は、 呼び出し元のファイルシステムグループ ID \(em
+ファイルシステムへの全てのアクセスのチェックにおいて Linux カーネルが使用するグループ ID \(em
+の値を変更する。通常はファイルシステムグループ ID の値は実効 (effective) グループ ID と同じになる。実際、 実効グループ ID
+が変更される度にファイルシステムグループ ID もまた新しい実効グループ ID の値に変更される。
 
 通常、 \fBsetfsuid\fP()  や \fBsetfsgid\fP() を明示的に呼び出すのは、Linux NFS サーバー のように、
-ファイルアクセスに用いるユーザID / グループID を変更しなければならないが、 対応する実(real)/実効(effective) ユーザID /
-グループID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラムで、通常のユーザID を変更すると、
+ファイルアクセスに用いるユーザーID / グループID を変更しなければならないが、 対応する実(real)/実効(effective) ユーザーID
+/ グループID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラムで、通常のユーザーID を変更すると、
 プロセスを望まないシグナルにさらす可能性があり、 セキュリティホールになる。(下記参照)
 
-\fBsetfsgid\fP()  ã\81¯ã\80\81ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\81«ã\82\88ã\81£ã\81¦å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81\8bã\80\81 \fIfsgid\fP ã\81\8c実グループID、実効グループID、
-保存セットグループID (saved set\-group\-ID)、現在の \fIfsgid\fP の値のいずれかに一致する場合にのみ成功する。
+\fBsetfsgid\fP()  ã\81¯ã\80\81ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81\8bã\80\81 \fIfsgid\fP ã\81\8cå\91¼ã\81³å\87ºã\81\97å\85\83ã\81®実グループID、実効グループID、
+保存セットグループID (saved set\-group\-ID)、現在のファイルシステムグループ ID の値のいずれかに一致する場合にのみ成功する。
 .SH 返り値
-成功した場合、 \fIfsgid\fP の以前の値を返す。エラーの場合は \fIfsgid\fP の現在の値を返す。
+成功時も失敗時も、 この呼び出しは直前の呼び出し元のファイルシステムグループ ID の値を返す。
 .SH バージョン
 .\" This system call is present since Linux 1.1.44
 .\" and in libc since libc 4.7.6.
@@ -64,8 +76,9 @@ IDを設定する。通常は \fIfsgid\fP の値は実効 (effective) グルー
 glibc が引き数がグループID として不正だと判断した場合は、 システムコールを行わず \fIerrno\fP に \fBEINVAL\fP を設定して \-1
 が返される。
 .LP
-このシステムコールが導入された当時、プロセスは 同じ実効ユーザIDのプロセスへシグナルを送ることができた。
-今日では、シグナル送信権限の扱いはかなり違うものになっている。
+このシステムコールが導入された当時、プロセスは 同じ実効ユーザーIDのプロセスへシグナルを送ることができた。
+今日では、シグナル送信権限の扱いはかなり違うものになっている。 なぜ今日では \fBsetfsuid\fP(2) と \fBsetfsgid\fP()
+の両者が不要なのかの議論については \fBsetfsuid\fP(2) を参照のこと。
 
 元々の Linux の \fBsetfsgid\fP() システムコールは
 16 ビットのグループ ID だけに対応していた。
@@ -74,11 +87,14 @@ glibc が引き数がグループID として不正だと判断した場合は
 glibc の \fBsetfsgid\fP() のラッパー関数は
 カーネルバージョンによるこの違いを吸収している。
 .SH バグ
-いかなる種類のエラーメッセージも返さない。 失敗した場合は (呼び出し元には \fBCAP_SETGID\fP ケーパビリティがなかったのだから) 最低でも
-\fBEPERM\fP くらいは返すべきである。
+いかなる種類のエラーメッセージも返さず、 成功した場合も失敗した場合も呼び出しは同じ値を返すため、
+呼び出しが成功したか失敗したかを直接判定することはできない。 その代わり、 直前の \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.53 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。