OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / release / man2 / capget.2
diff --git a/release/man2/capget.2 b/release/man2/capget.2
deleted file mode 100644 (file)
index 01a2383..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-.\" written by Andrew Morgan <morgan@kernel.org>
-.\"
-.\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
-.\" may be distributed as per GPL
-.\" %%%LICENSE_END
-.\"
-.\" Modified by David A. Wheeler <dwheeler@ida.org>
-.\" Modified 2004-05-27, mtk
-.\" Modified 2004-06-21, aeb
-.\" Modified 2008-04-28, morgan of kernel.org
-.\"     Update in line with addition of file capabilities and
-.\"     64-bit capability sets in kernel 2.6.2[45].
-.\" Modified 2009-01-26, andi kleen
-.\"
-.\"*******************************************************************
-.\"
-.\" This file was generated with po4a. Translate the source file.
-.\"
-.\"*******************************************************************
-.\"
-.\" Japanese Version Copyright (c) 1999 HANATAKA Shinya
-.\"         all rights reserved.
-.\" Translated 1999-12-26, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Updated & Modified 2005-02-03, Yuichi SATO <ysato444@yahoo.co.jp>
-.\" Updated & Modified 2006-01-31, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated & Modified 2006-07-23, Akihiro MOTOKI, LDP v2.36
-.\" Updated & Modified 2008-08-11, Akihiro MOTOKI, LDP v3.05
-.\" Updated 2009-02-24, Akihiro MOTOKI, LDP v3.19
-.\"
-.TH CAPGET 2 2013\-03\-11 Linux "Linux Programmer's Manual"
-.SH 名前
-capget, capset \- スレッドのケーパビリティを設定/取得する
-.SH 書式
-\fB#include <sys/capability.h>\fP
-.sp
-\fBint capget(cap_user_header_t \fP\fIhdrp\fP\fB, cap_user_data_t \fP\fIdatap\fP\fB);\fP
-.sp
-\fBint capset(cap_user_header_t \fP\fIhdrp\fP\fB, const cap_user_data_t
-\fP\fIdatap\fP\fB);\fP
-.SH 説明
-Linux 2.2 で、スーパーユーザー (root) の権限は、個別のケーパビリティ (capabilities)
-へと分割され、その集合として表現されるようになった。 各スレッドは「実効ケーパビリティ (effective capability) の集合」を持ち、
-それによって現在どの操作が実行可能かを識別できる。 また、各スレッドは、 「継承可能ケーパビリティ (inheritable capability)
-の集合」と 「許可ケーパビリティ (permitted capability) の集合」を持つ。 「継承可能ケーパビリティの集合」は
-\fBexecve\fP(2)  を通じて渡すことができるケーパビリティの集合であり、 「許可ケーパビリティ (permitted capability)
-の集合」は 実効ケーパビリティや継承可能ケーパビリティとして有効にできる ケーパビリティを規定するものである。
-.PP
-この二つのシステムコールはスレッドのケーパビリティを取得したり設定したりするための 生のカーネルインターフェースである。 これらのシステムコールは
-Linux 特有であるというだけでなく、 カーネル API は変更されるかもしれず、これらのシステムコールの使用法 (特に
-\fIcap_user_*_t\fP 型という書式) はカーネルのリビジョン毎に拡張されるかもしれないが、 以前のプログラムはそのまま動作する。
-.sp
-移植性のあるインターフェースは \fBcap_set_proc\fP(3)  と \fBcap_get_proc\fP(3)  である。
-可能ならばアプリケーションはこれらの関数を使用すべきである。 アプリケーションに Linux 拡張を使用したい場合には、より簡単に
-使えるインターフェースである \fBcapsetp\fP(3)  と \fBcapgetp\fP(3)  を使用すべきである。
-.SS 現在の詳細
-現在のカーネルの詳細について注意を述べておく。 構造体は以下のように定義される。
-.sp
-.nf
-.in +4n
-#define _LINUX_CAPABILITY_VERSION_1  0x19980330
-#define _LINUX_CAPABILITY_U32S_1     1
-
-#define _LINUX_CAPABILITY_VERSION_2  0x20071026
-#define _LINUX_CAPABILITY_U32S_2     2
-
-typedef struct __user_cap_header_struct {
-   __u32 version;
-   int pid;
-} *cap_user_header_t;
-
-typedef struct __user_cap_data_struct {
-   __u32 effective;
-   __u32 permitted;
-   __u32 inheritable;
-} *cap_user_data_t;
-.fi
-.in -4n
-.sp
-フィールド \fIeffective\fP, \fIpermitted\fP, \fIinheritable\fP は、 \fBcapabilities\fP(7)
-で定義されるケーパビリティのビットマスクである。 \fICAP_*\fP はビット番号を表すインデックス値であり、 ビットフィールドに OR を行う前に
-\fICAP_*\fP の値の分だけビットシフトを行う必要がある。 typedef の方はポインターなので、 このシステムコールに渡す構造体を定義するには、
-\fIstruct __user_cap_header_struct\fP と \fIstruct __user_cap_data_struct\fP
-という名前を使用しなければならない。
-
-カーネル 2.6.25 より前では、バージョン \fB_LINUX_CAPABILITY_VERSION_1\fP の 32
-ビットケーパビリティが推奨である。 カーネル 2.6.25 以降では、バージョン \fB_LINUX_CAPABILITY_VERSION_2\fP の 64
-ビットケーパビリティが推奨である。 64 ビットケーパビリティでは \fIdatap\fP[0] と \fIdatap\fP[1] が使用されるのに対し、 32
-ビットケーパビリティでは \fIdatap\fP[0] だけが使用される。
-.sp
-これらのシステムコールの挙動に影響があるもう一つの変更点は、 ファイルケーパビリティ (file capabilities) のカーネルによるサポート
-(VFS ケーパビリティのサポート) である。 VFS ケーパビリティのサポートは現在のところコンパイル時のオプションである (カーネル 2.6.24
-で追加された)。
-.sp
-\fBcapget\fP()  では、 \fIhdrp\->pid\fP のフィールド値にケーパビリティを知りたいプロセスのプロセス ID を
-指定することで、任意のプロセスのケーパビリティを調べることができる。
-.SS "VFS ケーパビリティがサポートされている場合"
-VFS ケーパビリティのサポートでは、特権実行ファイルにケーパビリティを 追加するためのファイル属性メソッドが作成された。
-この特権モデルの導入により、あるプロセスにより別のプロセスのケーパビリティ を非同期に設定する機能のカーネルによるサポートは廃止される。 つまり、VFS
-サポートでは、 \fBcapset\fP()  を呼び出す際に \fIhdrp\->pid\fP の値として許されるのは 0 と \fBgetpid\fP(2)
-が返す値だけとなる (どちらの値でも等価である)。
-.SS "VFS ケーパビリティがサポートされていない場合"
-カーネルが VFS ケーパビリティをサポートしていない場合、 \fIhdrp\fP の \fIpid\fP フィールドが 0 以外であれば、 \fBcapset\fP()
-の操作対象は \fIpid\fP で指定されたスレッドのケーパビリティになる。 \fIpid\fP が 0
-の場合は呼び出し元のスレッドのケーパビリティが操作対象となる。 \fIpid\fP がシングルスレッドプロセスを参照している場合、 \fIpid\fP
-は以前から使われているプロセスID を使って指定できる。 マルチスレッドプロセス内のあるスレッドを対象にする場合は、 \fBgettid\fP(2)
-が返すスレッドID を用いて指定する必要がある。 また、 \fBcapset\fP()  では \-1 や \-1 より小さな値を指定することもできる。 \-1
-は呼び出し元と \fBinit\fP(1)  を除く全てのスレッドを対象として変更を行うことを、 \-1 より小さな値は ID が \-\fIpid\fP
-のプロセスグループの全メンバ を対象として変更を行うことを意味する。
-
-このデータの詳細は \fBcapabilities\fP(7)  を参照すること。
-.SH 返り値
-成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
-
-\fIhdrp\fP のフィールド \fIversion\fP にサポートされていない値が指定された場合、 呼び出しはエラー \fBEINVAL\fP で失敗し、
-\fIversion\fP にカーネル推奨の \fB_LINUX_CAPABILITY_VERSION_?\fP を設定する。
-このようにして、現在の推奨ケーパビリティリビジョンが何かを 調べることができる。
-.SH エラー
-.TP 
-\fBEFAULT\fP
-不正なメモリーアドレス。 \fIhdrp\fP は NULL であってはならない。 \fIdatap\fP に NULL
-を指定してよいのは、ユーザーがカーネルがサポートしている 推奨のケーパビリティバージョンを判定しようとしているときだけである。
-.TP 
-\fBEINVAL\fP
-引き数のどれかが無効である。
-.TP 
-\fBEPERM\fP
-「許可ケーパビリティセット」にケーパビリティを追加しようとしているか、 もしくは「許可ケーパビリティセット」に含まれないケーパビリティを
-「実効ケーパビリティセット」や「継承可能ケーパビリティセット」に セットしようとしている。
-.TP 
-\fBEPERM\fP
-呼び出し元が自分以外のスレッドのケーパビリティを \fBcapset\fP()  を使って修正しようとしたが、十分な特権がなかった。 VFS
-ケーパビリティをサポートしているカーネルでは、 この操作が許可されることは決してない。 VFS ケーパビリティをサポートしていないカーネルでは、
-\fBCAP_SETPCAP\fP ケーパビリティが必要である。 (バージョン 2.6.11 より前のカーネルには、 このケーパビリティを持たないスレッドが
-\fIpid\fP フィールドに 0 でない値 (つまり、0 の代わりに \fBgetpid\fP(2)  が返す値)
-を指定して自分自身のケーパビリティを変更しようとした場合にも、 このエラーが発生するというバグがあった。)
-.TP 
-\fBESRCH\fP
-そのようなスレッドが存在しない。
-.SH 準拠
-これらのシステムコールは Linux 独自である。
-.SH 注意
-ケーパビリティを設定したり取得したりする機能のための移植性ある インターフェースは \fIlibcap\fP ライブラリによって提供される。
-このライブラリは以下から入手できる:
-.br
-.UR http://git.kernel.org/cgit\:/linux\:/kernel\:/git\:/morgan\:\:/libcap.git
-.UE
-.SH 関連項目
-\fBclone\fP(2), \fBgettid\fP(2), \fBcapabilities\fP(7)
-.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
-である。プロジェクトの説明とバグ報告に関する情報は
-http://www.kernel.org/doc/man\-pages/ に書かれている。