OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / draft / man7 / capabilities.7
index c3bf582..cb7cf63 100644 (file)
@@ -1,5 +1,6 @@
 .\" Copyright (c) 2002 by Michael Kerrisk <mtk.manpages@gmail.com>
 .\"
+.\" %%%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
 .\"
 .\" 6 Aug 2002 - Initial Creation
 .\" Modified 2003-05-23, Michael Kerrisk, <mtk.manpages@gmail.com>
 .\"     Add text noting that if we set the effective flag for one file
 .\"     capability, then we must also set the effective flag for all
 .\"     other capabilities where the permitted or inheritable bit is set.
+.\" 2011-09-07, mtk/Serge hallyn: Add CAP_SYSLOG
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
 .\"
 .\" Japanese Version Copyright (c) 2005 Akihiro MOTOKI all rights reserved.
 .\" Translated 2005-03-09, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\" Updated 2008-12-24, Akihiro MOTOKI, LDP v3.15
 .\" Updated 2009-02-27, Akihiro MOTOKI, LDP v3.19
 .\" Updated 2010-04-11, Akihiro MOTOKI, LDP v3.24
+.\" Updated 2012-05-31, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-05-06, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-08-16, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.TH CAPABILITIES 7 2010-06-19 "Linux" "Linux Programmer's Manual"
-.\"O .SH NAME
-.SH Ì¾Á°
-.\"O capabilities \- overview of Linux capabilities
-capabilities \- Linux ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤Î³µÍ×
-.\"O .SH DESCRIPTION
-.SH ÀâÌÀ
-.\"O For the purpose of performing permission checks,
-.\"O traditional UNIX implementations distinguish two categories of processes:
-.\"O .I privileged
-.\"O processes (whose effective user ID is 0, referred to as superuser or root),
-.\"O and
-.\"O .I unprivileged
-.\"O processes (whose effective UID is nonzero).
-¸¢¸Â¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦´ÑÅÀ¤«¤é¸«¤ë¤È¡¢ÅÁÅýŪ¤Ê UNIX ¤Î¼ÂÁõ¤Ç¤Ï
-¥×¥í¥»¥¹¤ÏÆó¤Ä¤Î¥«¥Æ¥´¥ê¤ËʬÎà¤Ç¤­¤ë:
-.I Æø¢
-¥×¥í¥»¥¹ (¼Â¸ú¥æ¡¼¥¶ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¡£¥æ¡¼¥¶ID 0 ¤Ï
-¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤ä root ¤È¸Æ¤Ð¤ì¤ë) ¤È
-.I ÈóÆø¢
-¥×¥í¥»¥¹ (¼Â¸ú¥æ¡¼¥¶ID ¤¬ 0 °Ê³°¤Î¥×¥í¥»¥¹) ¤Ç¤¢¤ë¡£
-.\"O Privileged processes bypass all kernel permission checks,
-.\"O while unprivileged processes are subject to full permission
-.\"O checking based on the process's credentials
-.\"O (usually: effective UID, effective GID, and supplementary group list).
-ÈóÆø¢¥×¥í¥»¥¹¤Ç¤Ï¡¢¥×¥í¥»¥¹¤Î»ñ³Ê¾ðÊó (Ä̾ï¤Ï¡¢¼Â¸úUID ¡¢¼Â¸úGID
-¤ÈÄɲäΥ°¥ë¡¼¥×¥ê¥¹¥È) ¤Ë´ð¤Å¤¯¸¢¸Â¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¤Î¤ËÂФ·¡¢
-Æø¢¥×¥í¥»¥¹¤Ç¤ÏÁ´¤Æ¤Î¥«¡¼¥Í¥ë¤Î¸¢¸Â¥Á¥§¥Ã¥¯¤¬¥Ð¥¤¥Ñ¥¹¤µ¤ì¤ë¡£
+.TH CAPABILITIES 7 2015\-02\-01 Linux "Linux Programmer's Manual"
+.SH 名前
+capabilities \- Linux のケーパビリティ (capability) の概要
+.SH 説明
+権限のチェックを行う観点から見ると、伝統的な UNIX の実装では プロセスは二つのカテゴリーに分類できる: \fI特権\fP プロセス (実効ユーザーID
+が 0 のプロセス。ユーザーID 0 は スーパーユーザーや root と呼ばれる) と \fI非特権\fP プロセス (実効ユーザーID が 0
+以外のプロセス) である。 非特権プロセスでは、プロセスの資格情報 (通常は、実効UID 、実効GID と追加のグループリスト)
+に基づく権限チェックが行われるのに対し、 特権プロセスでは全てのカーネルの権限チェックがバイパスされる。
 
-.\"O Starting with kernel 2.2, Linux divides the privileges traditionally
-.\"O associated with superuser into distinct units, known as
-.\"O .IR capabilities ,
-.\"O which can be independently enabled and disabled.
-.\"O Capabilities are a per-thread attribute.
-¥Ð¡¼¥¸¥ç¥ó 2.2 °Ê¹ß¤Î Linux ¤Ç¤Ï¡¢
-¤³¤ì¤Þ¤Ç¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤Æ¤­¤¿¸¢¸Â¤ò¡¢
-¤¤¤¯¤Ä¤«¤Î¥°¥ë¡¼¥×¤Ëʬ³ä¤·¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥°¥ë¡¼¥×¤Ï
-.IR ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)
-¤È¸Æ¤Ð¤ì¡¢¥°¥ë¡¼¥×Ëè¤ËÆÈΩ¤ËÍ­¸ú¡¢Ìµ¸ú¤òÀßÄê¤Ç¤­¤ë¡£
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¥¹¥ì¥Ã¥Éñ°Ì¤Î°À­¤Ç¤¢¤ë¡£
 .\"
-.\"O .SS Capabilities List
-.SS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥ê¥¹¥È
-.\"O The following list shows the capabilities implemented on Linux,
-.\"O and the operations or behaviors that each capability permits:
-°Ê²¼¤Î¥ê¥¹¥È¤Ï¡¢
-Linux ¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È
-³Æ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬µö²Ä¤¹¤ëÁàºî¤ÈÆ°ºî¤ò¤Þ¤È¤á¤¿¤â¤Î¤Ç¤¢¤ë¡£
-.TP
-.\"O .BR CAP_AUDIT_CONTROL " (since Linux 2.6.11)"
-.\"O Enable and disable kernel auditing; change auditing filter rules;
-.\"O retrieve auditing status and filtering rules.
-.BR CAP_AUDIT_CONTROL " (Linux 2.6.11 °Ê¹ß)"
-¥«¡¼¥Í¥ë´Æºº (audit) ¤ÎÍ­¸ú̵¸ú¤ÎÀÚ¤êÂؤ¨¡¢
-´Æºº¤Î¥Õ¥£¥ë¥¿¡¦¥ë¡¼¥ë¤ÎÊѹ¹¡¢
-´Æºº¤Î¾õ¶·¤ä¥Õ¥£¥ë¥¿¡¦¥ë¡¼¥ë¤Î¼èÆÀ¤¬¤Ç¤­¤ë¡£
-.TP
-.\"O .BR CAP_AUDIT_WRITE " (since Linux 2.6.11)"
-.BR CAP_AUDIT_WRITE " (Linux 2.6.11 °Ê¹ß)"
-.\"O Write records to kernel auditing log.
-¥«¡¼¥Í¥ë´Æºº¤Î¥í¥°¤Ë¥ì¥³¡¼¥É¤ò½ñ¤­¹þ¤à¡£
-.TP
-.B CAP_CHOWN
-.\"O Make arbitrary changes to file UIDs and GIDs (see
-.\"O .BR chown (2)).
-¥Õ¥¡¥¤¥ë¤Î UID ¤ÈGID ¤òǤ°Õ¤ËÊѹ¹¤¹¤ë
-.RB ( chown (2)
-»²¾È)¡£
-.TP
-.B CAP_DAC_OVERRIDE
-.\"O Bypass file read, write, and execute permission checks.
-.\"O (DAC is an abbreviation of "discretionary access control".)
-¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Î¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë
-(DAC ¤Ï "discretionary access control (Ǥ°Õ¤Î¥¢¥¯¥»¥¹À©¸æ)" ¤Îά¤Ç¤¢¤ë)¡£
-.TP
-.B CAP_DAC_READ_SEARCH
-.\"O Bypass file read permission checks and
-.\"O directory read and execute permission checks.
-¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·¸¢¸Â¤Î¥Á¥§¥Ã¥¯¤È¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆɤ߽Ф·¤È¼Â¹Ô
-¤Î¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¡£
-.TP
-.B CAP_FOWNER
+バージョン 2.2 以降の Linux では、 これまでスーパーユーザーに結び付けられてきた権限を、
+いくつかのグループに分割している。これらのグループは \fIケーパビリティ\fP(capability)
+と呼ばれ、グループ毎に独立に有効、無効を設定できる。 ケーパビリティはスレッド単位の属性である。
+.SS ケーパビリティのリスト
+以下のリストは、 Linux で実装されているケーパビリティと 各ケーパビリティが許可する操作と動作をまとめたものである。
+.TP 
+\fBCAP_AUDIT_CONTROL\fP (Linux 2.6.11 以降)
+カーネル監査 (audit) の有効無効の切り替え、 監査のフィルタルールの変更、 監査の状況やフィルタルールの取得ができる。
+.TP 
+\fBCAP_AUDIT_READ\fP (Linux 3.16 以降)
+.\" commit a29b694aa1739f9d76538e34ae25524f9c549d59
+.\" commit 3a101b8de0d39403b2c7e5c23fd0b005668acf48
+マルチキャスト netlink ソケット経由で監査ログの読み出しができる。
+.TP 
+\fBCAP_AUDIT_WRITE\fP (Linux 2.6.11 以降)
+カーネル監査のログにレコードを書き込む。
+.TP 
+\fBCAP_BLOCK_SUSPEND\fP (Linux 3.5 以降)
+システムのサスペンドをブロックできる機能を使用する (\fBepoll\fP(7)  \fBEPOLLWAKEUP\fP,
+\fI/proc/sys/wake_lock\fP)。
+.TP 
+\fBCAP_CHOWN\fP
+ファイルの UID とGID を任意に変更する (\fBchown\fP(2)  参照)。
+.TP 
+\fBCAP_DAC_OVERRIDE\fP
+ファイルの読み出し、書き込み、実行の権限チェックをバイパスする (DAC は "discretionary access control
+(任意のアクセス制御)" の略である)。
+.TP 
+\fBCAP_DAC_READ_SEARCH\fP
 .PD 0
 .RS
 .IP * 2
-.\"O Bypass permission checks on operations that normally
-.\"O require the file system UID of the process to match the UID of
-.\"O the file (e.g.,
-.\"O .BR chmod (2),
-.\"O .BR utime (2)),
-.\"O excluding those operations covered by
-.\"O .B CAP_DAC_OVERRIDE
-.\"O and
-.\"O .BR CAP_DAC_READ_SEARCH ;
-Ä̾¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬¥Õ¥¡¥¤¥ë¤Î UID ¤Ë°ìÃפ¹¤ë¤³¤È¤¬
-Í׵ᤵ¤ì¤ëÁàºî (Î㤨¤Ð
-.BR chmod (2),
-.BR utime (2))
-¤Ë¤ª¤±¤ë¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¡£
-⤷¡¢
-.B CAP_DAC_OVERRIDE
-¤«
-.B CAP_DAC_READ_SEARCH
-¤Ë¤è¤ê¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ëÁàºî¤Ï½ü¤¯¡£
-.IP *
-.\"O set extended file attributes (see
-.\"O .BR chattr (1))
-.\"O on arbitrary files;
-Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ³ÈÄ¥¥Õ¥¡¥¤¥ë°À­¤òÀßÄꤹ¤ë
-.RB ( chattr (1)
-»²¾È)¡£
-.IP *
-.\"O set Access Control Lists (ACLs) on arbitrary files;
-Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥¢¥¯¥»¥¹À©¸æ¥ê¥¹¥È (ACL) ¤òÀßÄꤹ¤ë¡£
-.IP *
-.\"O ignore directory sticky bit on file deletion;
-¥Õ¥¡¥¤¥ë¤Îºï½ü¤ÎºÝ¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¹¥Æ¥£¥Ã¥­¡¼¥Ó¥Ã¥È¤ò̵»ë¤¹¤ë¡£
-.IP *
-.\"O specify
-.\"O .B O_NOATIME
-.\"O for arbitrary files in
-.\"O .BR open (2)
-.\"O and
-.\"O .BR fcntl (2).
-.BR open (2)
-¤ä
-.BR fcntl (2)
-¤ÇǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ
-.B O_NOATIME
-¤ò»ØÄꤹ¤ë¡£
+ファイルの読み出し権限のチェックとディレクトリの読み出しと実行 の権限チェックをバイパスする。
+.IP *
+\fBopen_by_handle_at\fP(2) を起動する。
+.RE
+.PD
+
+.TP 
+\fBCAP_FOWNER\fP
+.PD 0
+.RS
+.IP * 2
+通常、プロセスのファイルシステム UID がファイルの UID に一致することが 要求される操作 (例えば \fBchmod\fP(2),
+\fButime\fP(2))  における権限チェックをバイパスする。 但し、 \fBCAP_DAC_OVERRIDE\fP か
+\fBCAP_DAC_READ_SEARCH\fP によりチェックが行われる操作は除く。
+.IP *
+任意のファイルに対して拡張ファイル属性を設定する (\fBchattr\fP(1)  参照)。
+.IP *
+任意のファイルに対してアクセス制御リスト (ACL) を設定する。
+.IP *
+ファイルの削除の際にディレクトリのスティッキービットを無視する。
+.IP *
+\fBopen\fP(2)  や \fBfcntl\fP(2)  で任意のファイルに対して \fBO_NOATIME\fP を指定する。
 .RE
 .PD
-.TP
-.B CAP_FSETID
-.\"O Don't clear set-user-ID and set-group-ID permission
-.\"O bits when a file is modified;
-.\"O set the set-group-ID bit for a file whose GID does not match
-.\"O the file system or any of the supplementary GIDs of the calling process.
-¥Õ¥¡¥¤¥ë¤¬Êѹ¹¤µ¤ì¤¿¤È¤­¤Ë set-user-ID ¤Èset-group-ID ¤Îµö²Ä¥Ó¥Ã¥È¤ò¥¯¥ê¥¢
-¤·¤Ê¤¤¡£¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à GID ¤ÈÄɲäΠGID ¤Î¤¤¤º¤ì¤È¤â
-GID ¤¬°ìÃפ·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ set-group-ID ¥Ó¥Ã¥È¤òÀßÄꤹ¤ë¡£
-.TP
-.B CAP_IPC_LOCK
-.\"O Lock memory
-.\"O .RB ( mlock (2),
-.\"O .BR mlockall (2),
-.\"O .BR mmap (2),
-.\"O .BR shmctl (2)).
-¥á¥â¥ê¡¼¤Î¥í¥Ã¥¯
-.RB ( mlock (2),
-.BR mlockall (2),
-.BR mmap (2),
-.BR shmctl (2))
-¤ò¹Ô¤¦¡£
-.TP
-.B CAP_IPC_OWNER
-.\"O Bypass permission checks for operations on System V IPC objects.
-System V IPC ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ëÁàºî¤Ë´Ø¤·¤Æ¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¡£
-.TP
-.B CAP_KILL
-.\"O Bypass permission checks for sending signals (see
-.\"O .BR kill (2)).
-.\"O This includes use of the
-.\"O .BR ioctl (2)
-.\"O .B KDSIGACCEPT
-.\"O operation.
-¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ëºÝ¤Ë¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë
-.RB ( kill (2)
-»²¾È)¡£¤³¤ì¤Ë¤Ï
-.BR ioctl (2)
-¤Î
-.B KDSIGACCEPT
-Áàºî¤Î»ÈÍѤâ´Þ¤Þ¤ì¤ë¡£
-.\" FIXME CAP_KILL also has an effect for threads + setting child
+.TP 
+\fBCAP_FSETID\fP
+ファイルが変更されたときに set\-user\-ID とset\-group\-ID の許可ビットをクリア しない。呼び出し元プロセスのファイルシステム
+GID と追加の GID のいずれとも GID が一致しないファイルに対して set\-group\-ID ビットを設定する。
+.TP 
+\fBCAP_IPC_LOCK\fP
+.\" FIXME . As at Linux 3.2, there are some strange uses of this capability
+.\" in other places; they probably should be replaced with something else.
+メモリーのロック (\fBmlock\fP(2), \fBmlockall\fP(2), \fBmmap\fP(2), \fBshmctl\fP(2))  を行う。
+.TP 
+\fBCAP_IPC_OWNER\fP
+System V IPC オブジェクトに対する操作に関して権限チェックをバイパスする。
+.TP 
+\fBCAP_KILL\fP
+.\" FIXME . CAP_KILL also has an effect for threads + setting child
 .\"       termination signal to other than SIGCHLD: without this
 .\"       capability, the termination signal reverts to SIGCHLD
 .\"       if the child does an exec().  What is the rationale
 .\"       for this?
-.TP
-.\"O .BR CAP_LEASE " (since Linux 2.4)"
-.BR CAP_LEASE " (Linux 2.4 °Ê¹ß)"
-.\"O Establish leases on arbitrary files (see
-.\"O .BR fcntl (2)).
-Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ
-¥Õ¥¡¥¤¥ë¥ê¡¼¥¹¤òÀßÄꤹ¤ë
-.RB ( fcntl (2)
-»²¾È)¡£
-.TP
-.B CAP_LINUX_IMMUTABLE
-.\"O Set the
-.\"O .B FS_APPEND_FL
-.\"O and
-.\"O .B FS_IMMUTABLE_FL
-.\"O .\" These attributes are now available on ext2, ext3, Reiserfs, XFS, JFS
-.\"O i-node flags (see
-.\"O .BR chattr (1)).
-³ÈÄ¥¥Õ¥¡¥¤¥ë°À­
-.B FS_APPEND_FL
-¤È
-.B FS_IMMUTABLE_FL
-¤òÀßÄꤹ¤ë
-.RB ( chattr (1)
-»²¾È)¡£
-.\" ¤³¤ì¤é¤Î°À­¤Ï ext2, ext3, Reiserfs, XFS, JFS ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£
-.TP
-.\"O .BR CAP_MAC_ADMIN " (since Linux 2.6.25)"
-.BR CAP_MAC_ADMIN " (Linux 2.6.25 °Ê¹ß)"
-.\"O Override Mandatory Access Control (MAC).
-.\"O Implemented for the Smack Linux Security Module (LSM).
-¶¯À©¥¢¥¯¥»¥¹À©¸æ (MAC) ¤ò¾å½ñ¤­¤¹¤ë¡£
-Smack Linux Security Module (LSM) ÍѤ˼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£
-.TP
-.\"O .BR CAP_MAC_OVERRIDE " (since Linux 2.6.25)"
-.BR CAP_MAC_OVERRIDE " (Linux 2.6.25 °Ê¹ß)"
-.\"O Allow MAC configuration or state changes.
-.\"O Implemented for the Smack LSM.
-MAC ¤ÎÀßÄê¤ä¾õÂÖ¤òÊѹ¹¤¹¤ë¡£
-Smack LSM ÍѤ˼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£
-.TP
-.\"O .BR CAP_MKNOD " (since Linux 2.4)"
-.BR CAP_MKNOD " (Linux 2.4 °Ê¹ß)"
-.\"O Create special files using
-.\"O .BR mknod (2).
-(Linux 2.4 °Ê¹ß)
-.BR mknod (2)
-¤ò»ÈÍѤ·¤Æ¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡£
-.TP
-.B CAP_NET_ADMIN
-.\"O Perform various network-related operations
-.\"O (e.g., setting privileged socket options,
-.\"O enabling multicasting, interface configuration,
-.\"O modifying routing tables).
-³Æ¼ï¤Î¥Í¥Ã¥È¥ï¡¼¥¯´ØÏ¢¤ÎÁàºî¤ò¼Â¹Ô¤¹¤ë¡£
-(Î㤨¤Ð¡¢Æø¢¤¬É¬Íפʥ½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¤òÍ­¸ú¤Ë¤¹¤ë¡¢
-¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÀßÄꤹ¤ë¡¢¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤òÊѹ¹¤¹¤ë¤Ê¤É)
-.TP
-.B CAP_NET_BIND_SERVICE
-.\"O Bind a socket to Internet domain privileged ports
-.\"O (port numbers less than 1024).
-¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤ÎÆø¢¥Ý¡¼¥È (¥Ý¡¼¥ÈÈֹ椬 1024 ÈÖ̤Ëþ)
-¤ò¥Ð¥¤¥ó¥É¤Ç¤­¤ë¡£
-.TP
-.B CAP_NET_BROADCAST
-.\"O (Unused)  Make socket broadcasts, and listen to multicasts.
-(̤»ÈÍÑ) ¥½¥±¥Ã¥È¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤È¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¤ÎÂÔ¤Á¼õ¤±¤ò¹Ô¤¦¡£
-.TP
-.B CAP_NET_RAW
-.\"O Use RAW and PACKET sockets.
-.\"O .\" Also various IP options and setsockopt(SO_BINDTODEVICE)
-RAW ¥½¥±¥Ã¥È¤È PACKET ¥½¥±¥Ã¥È¤ò»ÈÍѤ¹¤ë¡£
-.\" ¤Þ¤¿¡¢³Æ¼ï¤Î IP ¥ª¥×¥·¥ç¥ó¤È SO_BINDTODEVICE ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤǤ­¤ë¡£
-.TP
-.B CAP_SETGID
-.\"O Make arbitrary manipulations of process GIDs and supplementary GID list;
-.\"O forge GID when passing socket credentials via UNIX domain sockets.
-¥×¥í¥»¥¹¤Î GID ¤ÈÄɲäΠGID ¥ê¥¹¥È¤ËÂФ¹¤ëǤ°Õ¤ÎÁàºî¤ò¹Ô¤¦¡£
-UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È·Ðͳ¤Ç¥½¥±¥Ã¥È¤Î»ñ³Ê¾ðÊó (credential) ¤òÅϤ¹ºÝ¤Ë
-µ¶¤Î GID ¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£
-.TP
-.\"O .BR CAP_SETFCAP " (since Linux 2.6.24)"
-.BR CAP_SETFCAP " (Linux 2.6.24 °Ê¹ß)"
-.\"O Set file capabilities.
-¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀßÄꤹ¤ë¡£
-.TP
-.B CAP_SETPCAP
-.\"O If file capabilities are not supported:
-.\"O grant or remove any capability in the
-.\"O caller's permitted capability set to or from any other process.
-.\"O (This property of
-.\"O .B CAP_SETPCAP
-.\"O is not available when the kernel is configured to support
-.\"O file capabilities, since
-.\"O .B CAP_SETPCAP
-.\"O has entirely different semantics for such kernels.)
-¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç:
-¸Æ¤Ó½Ð¤·¸µ¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ëǤ°Õ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¡¢
-¾¤Î¥×¥í¥»¥¹¤ËÉÕÍ¿¤·¤¿¤ê¡¢ºï½ü¤·¤¿¤ê¤Ç¤­¤ë¡£
-(¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢
-.B CAP_SETPCAP
-¤Ï¤³¤ÎÌò³ä¤ò»ý¤¿¤Ê¤¤¡£
-¤Ê¤¼¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Ç¤Ï
-.B CAP_SETPCAP
-¤ÏÁ´¤¯Ê̤ΰÕÌ£¤ò»ý¤Ä¤«¤é¤Ç¤¢¤ë¡£)
+シグナルを送信する際に権限チェックをバイパスする (\fBkill\fP(2)  参照)。これには \fBioctl\fP(2)  の \fBKDSIGACCEPT\fP
+操作の使用も含まれる。
+.TP 
+\fBCAP_LEASE\fP (Linux 2.4 以降)
+任意のファイルに対して ファイルリースを設定する (\fBfcntl\fP(2)  参照)。
+.TP 
+\fBCAP_LINUX_IMMUTABLE\fP
+.\" These attributes are now available on ext2, ext3, Reiserfs, XFS, JFS
+inode フラグ \fBFS_APPEND_FL\fP と \fBFS_IMMUTABLE_FL\fP を設定する (\fBchattr\fP(1)  参照)。
+.TP 
+\fBCAP_MAC_ADMIN\fP (Linux 2.6.25 以降)
+強制アクセス制御 (MAC) を上書きする。 Smack Linux Security Module (LSM) 用に実装されている。
+.TP 
+\fBCAP_MAC_OVERRIDE\fP (Linux 2.6.25 以降)
+MAC の設定や状態を変更する。 Smack LSM 用に実装されている。
+.TP 
+\fBCAP_MKNOD\fP (Linux 2.4 以降)
+(Linux 2.4 以降)  \fBmknod\fP(2)  を使用してスペシャルファイルを作成する。
+.TP 
+\fBCAP_NET_ADMIN\fP
+各種のネットワーク関係の操作を実行する:
+.PD 0
+.RS
+.IP * 2
+インターフェースの設定
+.IP *
+IP のファイアウォール、マスカレード、アカウンティング
+.IP *
+ルーティングテーブルの変更
+.IP *
+透過的プロキシでの任意のアドレスの割り当て (bind)
+.IP *
+サービス種別 (type\-of\-service; TOS) のセット
+.IP *
+ドライバの統計情報のクリア
+.IP *
+promiscuous モードをセットする
+.IP *
+マルチキャストを有効にする
+.IP *
+\fBsetsockopt\fP(2) を使って以下のソケットオプションを設定する:
+\fBSO_DEBUG\fP, \fBSO_MARK\fP,
+\fBSO_PRIORITY\fP (優先度を 0 から 6 以外に設定する場合),
+\fBSO_RCVBUFFORCE\fP, and \fBSO_SNDBUFFORCE\fP
+.RE
+.PD
+.TP 
+\fBCAP_NET_BIND_SERVICE\fP
+インターネットドメインの特権ポート (ポート番号が 1024 番未満)  をバインドできる。
+.TP 
+\fBCAP_NET_BROADCAST\fP
+(未使用) ソケットのブロードキャストと、マルチキャストの待ち受けを行う。
+.TP 
+\fBCAP_NET_RAW\fP
+.PD 0
+.RS
+.IP * 2
+RAW ソケットと PACKET ソケットを使用する。
+.IP *
+透過的プロキシでの任意のアドレスの割り当て (bind)
+.RE
+.PD
+.\" Also various IP options and setsockopt(SO_BINDTODEVICE)
+.TP 
+\fBCAP_SETGID\fP
+プロセスの GID と追加の GID リストに対する任意の操作を行う。 UNIX ドメインソケット経由でソケットの資格情報 (credential)
+を渡す際に 偽の GID を渡すことができる。 ユーザー名前空間にグループ ID マッピングを書き込むことができる
+(\fBuser_namespaces\fP(7) 参照)。
+.TP 
+\fBCAP_SETFCAP\fP (Linux 2.6.24 以降)
+ファイルケーパビリティを設定する。
+.TP 
+\fBCAP_SETPCAP\fP
+ファイルケーパビリティがサポートされていない場合: 呼び出し元が許可されているケーパビリティセットに含まれる任意のケーパビリティを、
+他のプロセスに付与したり、削除したりできる。 (カーネルがファイルケーパビリティをサポートしている場合、 \fBCAP_SETPCAP\fP
+はこの役割を持たない。 なぜなら、ファイルケーパビリティをサポートしているカーネルでは \fBCAP_SETPCAP\fP は全く別の意味を持つからである。)
 
-.\"O If file capabilities are supported:
-.\"O add any capability from the calling thread's bounding set
-.\"O to its inheritable set;
-.\"O drop capabilities from the bounding set (via
-.\"O .BR prctl (2)
-.\"O .BR PR_CAPBSET_DROP );
-.\"O make changes to the
-.\"O .I securebits
-.\"O flags.
-¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç:
-¸Æ¤Ó½Ð¤·¸µ¥¹¥ì¥Ã¥É¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÎǤ°Õ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò
-¼«¿È¤Î·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ËÄɲäǤ­¤ë¡£
-.RB ( prctl (2)
-.BR PR_CAPBSET_DROP
-¤ò»È¤Ã¤Æ)
-¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºï½ü¤Ç¤­¤ë¡£
-.I securebits
-¥Õ¥é¥°¤òÊѹ¹¤Ç¤­¤ë¡£
-.TP
-.B CAP_SETUID
-.\"O Make arbitrary manipulations of process UIDs
-.\"O .RB ( setuid (2),
-.\"O .BR setreuid (2),
-.\"O .BR setresuid (2),
-.\"O .BR setfsuid (2));
-.\"O make forged UID when passing socket credentials via UNIX domain sockets.
-¥×¥í¥»¥¹¤Î UID ¤ËÂФ¹¤ëǤ°Õ¤ÎÁàºî
-.RB ( setuid (2),
-.BR setreuid (2),
-.BR setresuid (2),
-.BR setfsuid (2))
-¤ò¹Ô¤¦¡£
-UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È·Ðͳ¤Ç¥½¥±¥Ã¥È¤Î»ñ³Ê¾ðÊó (credential) ¤òÅϤ¹ºÝ¤Ë
-µ¶¤Î UID ¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£
+ファイルケーパビリティがサポートされている場合: 呼び出し元スレッドのバウンディングセットの任意のケーパビリティを
+自身の継承可能ケーパビリティセットに追加できる。 (\fBprctl\fP(2)  \fBPR_CAPBSET_DROP\fP を使って)
+バウンディングセットからケーパビリティを削除できる。 \fIsecurebits\fP フラグを変更できる。
+.TP 
+\fBCAP_SETUID\fP
 .\" FIXME CAP_SETUID also an effect in exec(); document this.
-.TP
-.B CAP_SYS_ADMIN
+プロセスの UID に対する任意の操作 (\fBsetuid\fP(2), \fBsetreuid\fP(2), \fBsetresuid\fP(2),
+\fBsetfsuid\fP(2))  を行う。 UNIX ドメインソケット経由でソケットの資格情報 (credential) を渡す際に 偽の UID
+を渡すことができる。 ユーザー名前空間にユーザー ID マッピングを書き込むことができる (\fBuser_namespaces\fP(7) 参照)。
+.TP 
+\fBCAP_SYS_ADMIN\fP
 .PD 0
 .RS
 .IP * 2
-.\"O Perform a range of system administration operations including:
-.\"O .BR quotactl (2),
-.\"O .BR mount (2),
-.\"O .BR umount (2),
-.\"O .BR swapon (2),
-.\"O .BR swapoff (2),
-.\"O .BR sethostname (2),
-.\"O and
-.\"O .BR setdomainname (2);
-°Ê²¼¤Î¥·¥¹¥Æ¥à´ÉÍýÍѤÎÁàºî¤ò¼Â¹Ô¤¹¤ë:
-.BR quotactl (2),
-.BR mount (2),
-.BR umount (2),
-.BR swapon (2),
-.BR swapoff (2),
-.BR sethostname (2),
-.BR setdomainname (2).
-.IP *
-.\"O perform
-.\"O .B IPC_SET
-.\"O and
-.\"O .B IPC_RMID
-.\"O operations on arbitrary System V IPC objects;
-Ǥ°Õ¤Î System V IPC ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë
-.B IPC_SET
-¤È
-.B IPC_RMID
-Áàºî¤ò¼Â¹Ô¤¹¤ë¡£
-.IP *
-.\"O perform operations on
-.\"O .I trusted
-.\"O and
-.\"O .I security
-.\"O Extended Attributes (see
-.\"O .BR attr (5));
-³Èĥ°À­
-.I trusted
-¤È
-.I security
-¤ËÂФ¹¤ëÁàºî¤ò¼Â¹Ô¤¹¤ë
-.RB ( attr (5)
-»²¾È)¡£
-.IP *
-.\"O use
-.\"O .BR lookup_dcookie (2);
-.BR lookup_dcookie (2)
-¤ò¸Æ¤Ó½Ð¤¹¡£
-.IP *
-.\"O use
-.\"O .BR ioprio_set (2)
-.\"O to assign
-.\"O .B IOPRIO_CLASS_RT
-.\"O and (before Linux 2.6.25)
-.\"O .B IOPRIO_CLASS_IDLE
-.\"O I/O scheduling classes;
-.BR ioprio_set (2)
-¤ò»È¤Ã¤Æ I/O ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹
-.BR IOPRIO_CLASS_RT ,
-.B IOPRIO_CLASS_IDLE
-¤ò³ä¤êÅö¤Æ¤ë
-.RB ( IOPRIO_CLASS_IDLE
-¤Ï Linux 2.6.25 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¤ß)¡£
-.IP *
-.\"O forge UID when passing socket credentials;
-¥½¥±¥Ã¥È¤Î»ñ³Ê¾ðÊó (credential) ¤òÅϤ¹ºÝ¤Ëµ¶¤Î UID ¤òÅϤ¹¡£
-.IP *
-.\"O exceed
-.\"O .IR /proc/sys/fs/file-max ,
-.\"O the system-wide limit on the number of open files,
-.\"O in system calls that open files (e.g.,
-.\"O .BR accept (2),
-.\"O .BR execve (2),
-.\"O .BR open (2),
-.\"O .BR pipe (2));
-¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë (Î㤨¤Ð
-.BR accept (2),
-.BR execve (2),
-.BR open (2),
-.BR pipe (2))
-¤Ç¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â
-.I /proc/sys/fs/file-max
-¤òĶ²á¤¹¤ë¡£
-.IP *
-.\"O employ
-.\"O .B CLONE_NEWNS
-.\"O flag with
-.\"O .BR clone (2)
-.\"O and
-.\"O .BR unshare (2);
-.BR clone (2)
-¤È
-.BR unshare (2)
-¤Ç
-.B CLONE_NEWNS
-¥Õ¥é¥°¤òÍøÍѤ¹¤ë¡£
-.IP *
-.\"O perform
-.\"O .B KEYCTL_CHOWN
-.\"O and
-.\"O .B KEYCTL_SETPERM
-.\"O .BR keyctl (2)
-.\"O operations;
-.BR keyctl (2)
-¤Î
-.B KEYCTL_CHOWN
-¤È
-.B KEYCTL_SETPERM
-Áàºî¤ò¼Â¹Ô¤¹¤ë¡£
-.IP *
-.\"O perform
-.\"O .BR madvise (2)
-.\"O .B MADV_HWPOISON
-.\"O operation.
-.BR madvise (2)
-¤Î
-.B MADV_HWPOISON
-Áàºî¤ò¼Â¹Ô¤¹¤ë¡£
+以下のシステム管理用の操作を実行する: \fBquotactl\fP(2), \fBmount\fP(2), \fBumount\fP(2), \fBswapon\fP(2),
+\fBswapoff\fP(2), \fBsethostname\fP(2), \fBsetdomainname\fP(2).
+.IP *
+特権が必要な \fBsyslog\fP(2) の操作を実行する
+(Linux 2.6.37 以降では、このような操作を許可するには
+\fBCAP_SYSLOG\fP を使うべきである)
+.IP *
+\fBVM86_REQUEST_IRQ\fP \fBvm86\fP(2) コマンドを実行する。
+.IP *
+任意の System V IPC オブジェクトに対する \fBIPC_SET\fP と \fBIPC_RMID\fP 操作を実行する。
+.IP *
+\fBRLIMIT_NPROC\fP リソース制限を上書きする。
+.IP *
+拡張属性 \fItrusted\fP と \fIsecurity\fP に対する操作を実行する (\fBattr\fP(5)  参照)。
+.IP *
+\fBlookup_dcookie\fP(2)  を呼び出す。
+.IP *
+\fBioprio_set\fP(2)  を使って I/O スケジューリングクラス \fBIOPRIO_CLASS_RT\fP,
+\fBIOPRIO_CLASS_IDLE\fP を割り当てる (\fBIOPRIO_CLASS_IDLE\fP は Linux 2.6.25
+より前のバージョンのみ)。
+.IP *
+UNIX ドメインソケットでソケットの資格情報 (credential) を渡す際に偽の UID を渡す。
+.IP *
+ファイルをオープンするシステムコール (例えば \fBaccept\fP(2), \fBexecve\fP(2), \fBopen\fP(2), \fBpipe\fP(2))
+でシステム全体でオープンできるファイル数の上限 \fI/proc/sys/fs/file\-max\fP を超過する。
+.IP *
+\fBclone\fP(2) と \fBunshare\fP(2) で新しい名前空間を作成する \fBCLONE_*\fP フラグを利用する (ただし、 Linux
+3.8 以降では、ユーザー名前空間の作成にどのケーパビリティも必要としない)。
+.IP *
+\fBperf_event_open\fP(2) を呼び出す。
+.IP *
+特権が必要な \fIperf\fP イベントの情報にアクセスする。
+.IP *
+\fBsetns\fP(2) を呼び出す (\fItarget\fP 名前空間での \fBCAP_SYS_ADMIN\fP が必要)。
+.IP *
+\fBfanotify_init\fP(2) を呼び出す。
+.IP *
+\fBkeyctl\fP(2)  の \fBKEYCTL_CHOWN\fP と \fBKEYCTL_SETPERM\fP 操作を実行する。
+.IP *
+\fBmadvise\fP(2)  の \fBMADV_HWPOISON\fP 操作を実行する。
+.IP *
+\fBTIOCSTI\fP \fBioctl\fP(2) を使って、
+呼び出し元の制御端末以外の端末の入力キューに文字を挿入する。
+.IP *
+廃止予定の \fBnfsservctl\fP(2) システムコールを使用する。
+.IP *
+廃止予定の \fBbdflush\fP(2) システムコールを使用する。
+.IP *
+特権が必要なブロックデバイスに対する各種の \fBioctl\fP(2) 操作を
+実行する。
+.IP *
+特権が必要なファイルシステムに対する各種の \fBioctl\fP(2) 操作を
+実行する。
+.IP *
+多くのデバイスドライバに対する管理命令を実行する。
 .RE
 .PD
-.TP
-.B CAP_SYS_BOOT
-.\"O Use
-.\"O .BR reboot (2)
-.\"O and
-.\"O .BR kexec_load (2).
-.BR reboot (2)
-¤È
-.BR kexec_load (2)
-¤ò¸Æ¤Ó½Ð¤¹¡£
-.TP
-.B CAP_SYS_CHROOT
-.\"O Use
-.\"O .BR chroot (2).
-.BR chroot (2).
-¤ò¸Æ¤Ó½Ð¤¹¡£
-.TP
-.B CAP_SYS_MODULE
-.\"O Load and unload kernel modules
-.\"O (see
-.\"O .BR init_module (2)
-.\"O and
-.\"O .BR delete_module (2));
-.\"O in kernels before 2.6.25:
-.\"O drop capabilities from the system-wide capability bounding set.
-¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Î¥í¡¼¥É¡¢¥¢¥ó¥í¡¼¥É¤ò¹Ô¤¦
-.RB ( init_module (2)
-¤È
-.BR delete_module (2)
-¤ò»²¾È¤Î¤³¤È)¡£
-¥Ð¡¼¥¸¥ç¥ó 2.6.25 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¡¢
-¥·¥¹¥Æ¥àÁ´ÂΤΥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È (capability bounding set)
-¤«¤é¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³°¤¹¡£
-.TP
-.B CAP_SYS_NICE
+.TP 
+\fBCAP_SYS_BOOT\fP
+\fBreboot\fP(2)  と \fBkexec_load\fP(2)  を呼び出す。
+.TP 
+\fBCAP_SYS_CHROOT\fP
+\fBchroot\fP(2).  を呼び出す。
+.TP 
+\fBCAP_SYS_MODULE\fP
+カーネルモジュールのロード、アンロードを行う (\fBinit_module\fP(2)  と \fBdelete_module\fP(2)  を参照のこと)。
+バージョン 2.6.25 より前のカーネルで、 システム全体のケーパビリティバウンディングセット (capability bounding set)
+からケーパビリティを外す。
+.TP 
+\fBCAP_SYS_NICE\fP
 .PD 0
 .RS
 .IP * 2
-.\"O Raise process nice value
-.\"O .RB ( nice (2),
-.\"O .BR setpriority (2))
-.\"O and change the nice value for arbitrary processes;
-¥×¥í¥»¥¹¤Î nice Ãͤΰú¤­¾å¤²
-.RB ( nice (2),
-.BR setpriority (2))
-¤ä¡¢Ç¤°Õ¤Î¥×¥í¥»¥¹¤Î nice ÃͤÎÊѹ¹¤ò¹Ô¤¦¡£
-.IP *
-.\"O set real-time scheduling policies for calling process,
-.\"O and set scheduling policies and priorities for arbitrary processes
-.\"O .RB ( sched_setscheduler (2),
-.\"O .BR sched_setparam (2));
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ËÂФ¹¤ë¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤È¡¢
-Ǥ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ¹¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ¤òÀßÄꤹ¤ë
-.RB ( sched_setscheduler (2),
-.BR sched_setparam (2))¡£
-.IP *
-.\"O set CPU affinity for arbitrary processes
-.\"O .RB ( sched_setaffinity (2));
-Ǥ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ¹¤ë CPU affinity ¤òÀßÄê¤Ç¤­¤ë
-.RB ( sched_setaffinity (2))¡£
-.IP *
-.\"O set I/O scheduling class and priority for arbitrary processes
-.\"O .RB ( ioprio_set (2));
-Ǥ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ I/O ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ÈÍ¥ÀèÅÙ¤òÀßÄê¤Ç¤­¤ë
-.RB ( ioprio_set (2))¡£
-.IP *
-.\"O apply
-.\"O .BR migrate_pages (2)
-.\"O to arbitrary processes and allow processes
-.\"O to be migrated to arbitrary nodes;
-.BR migrate_pages (2)
-¤òǤ°Õ¤Î¥×¥í¥»¥¹¤ËŬÍѤ·¡¢¥×¥í¥»¥¹¤òǤ°Õ¤Î¥Î¡¼¥É¤Ë°ÜÆ°¤¹¤ë¡£
+プロセスの nice 値の引き上げ (\fBnice\fP(2), \fBsetpriority\fP(2))  や、任意のプロセスの nice 値の変更を行う。
+.IP *
+呼び出し元プロセスに対するリアルタイムスケジューリングポリシーと、 任意のプロセスに対するスケジューリングポリシーと優先度を設定する
+(\fBsched_setscheduler\fP(2), \fBsched_setparam\fP(2), \fBshed_setattr\fP(2))。
+.IP *
+任意のプロセスに対する CPU affinity を設定できる (\fBsched_setaffinity\fP(2))。
+.IP *
+任意のプロセスに対して I/O スケジューリングクラスと優先度を設定できる (\fBioprio_set\fP(2))。
+.IP *
 .\" FIXME CAP_SYS_NICE also has the following effect for
 .\" migrate_pages(2):
 .\"     do_migrate_pages(mm, &old, &new,
 .\"         capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
+.\" Document this.
+\fBmigrate_pages\fP(2)  を任意のプロセスに適用し、プロセスを任意のノードに移動する。
+.IP *
+\fBmove_pages\fP(2)  を任意のプロセスに対して行う。
+.IP *
+\fBmbind\fP(2)  と \fBmove_pages\fP(2)  で \fBMPOL_MF_MOVE_ALL\fP フラグを使用する。
+.RE
+.PD
+.TP 
+\fBCAP_SYS_PACCT\fP
+\fBacct\fP(2)  を呼び出す。
+.TP 
+\fBCAP_SYS_PTRACE\fP
+.PD 0
+.RS
+.IP * 3
+\fBptrace\fP(2)  を使って任意のプロセスをトレースする。
 .IP *
-.\"O apply
-.\"O .BR move_pages (2)
-.\"O to arbitrary processes;
-.BR move_pages (2)
-¤òǤ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¹Ô¤¦¡£
-.IP *
-.\"O use the
-.\"O .B MPOL_MF_MOVE_ALL
-.\"O flag with
-.\"O .BR mbind (2)
-.\"O and
-.\"O .BR move_pages (2).
-.BR mbind (2)
-¤È
-.BR move_pages (2)
-¤Ç
-.B MPOL_MF_MOVE_ALL
-¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¡£
+\fBget_robust_list\fP(2)  を任意のプロセスに対して行う。
+.IP *
+\fBprocess_vm_readv\fP(2) と \fBprocess_vm_writev\fP(2)
+を使って任意のプロセスのメモリーとの間でデータの送受信を行う。
+.IP *
+\fBkcmp\fP(2) を使ってプロセス内部を調査する。
 .RE
 .PD
-.TP
-.B CAP_SYS_PACCT
-.\"O Use
-.\"O .BR acct (2).
-.BR acct (2)
-¤ò¸Æ¤Ó½Ð¤¹¡£
-.TP
-.B CAP_SYS_PTRACE
-.\"O Trace arbitrary processes using
-.\"O .BR ptrace (2);
-.\"O apply
-.\"O .BR get_robust_list (2)
-.\"O to arbitrary processes.
-.BR ptrace (2)
-¤ò»È¤Ã¤ÆǤ°Õ¤Î¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤¹¤ë¡£
-Ǥ°Õ¤Î¥×¥í¥»¥¹¤Ë
-.BR get_robust_list (2)
-¤òŬÍѤ¹¤ë¡£
-.TP
-.B CAP_SYS_RAWIO
-.\"O Perform I/O port operations
-.\"O .RB ( iopl (2)
-.\"O and
-.\"O .BR ioperm (2));
-.\"O access
-.\"O .IR /proc/kcore .
-I/O ¥Ý¡¼¥ÈÁàºî¤ò¼Â¹Ô¤¹¤ë
-.RB ( iopl (2)
-¡¢
-.BR ioperm (2))¡£
-.I /proc/kcore
-¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£
-.TP
-.B CAP_SYS_RESOURCE
+.TP 
+\fBCAP_SYS_RAWIO\fP
 .PD 0
 .RS
 .IP * 2
-.\"O Use reserved space on ext2 file systems;
-ext2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤ÎͽÌ󤵤ì¤Æ¤¤¤ëÎΰè¤ò»ÈÍѤ¹¤ë¡£
-.IP *
-.\"O make
-.\"O .BR ioctl (2)
-.\"O calls controlling ext3 journaling;
-ext3 ¤Î¥¸¥ã¡¼¥Ê¥ëµ¡Ç½¤òÀ©¸æ¤¹¤ë
-.BR ioctl (2)
-¤ò»ÈÍѤ¹¤ë¡£
-.IP *
-.\"O override disk quota limits;
-¥Ç¥£¥¹¥¯ quota ¤Î¾å¸Â¤ò¾å½ñ¤­¤¹¤ë¡£
-.IP *
-.\"O increase resource limits (see
-.\"O .BR setrlimit (2));
-¥ê¥½¡¼¥¹¾å¸Â¤òÁý¤ä¤¹
-.RB ( setrlimit (2))¡£
-.IP *
-.\"O override
-.\"O .B RLIMIT_NPROC
-.\"O resource limit;
-.B RLIMIT_NPROC
-¥ê¥½¡¼¥¹À©¸Â¤ò¾å½ñ¤­¤¹¤ë¡£
-.IP *
-.\"O raise
-.\"O .I msg_qbytes
-.\"O limit for a System V message queue above the limit in
-.\"O .I /proc/sys/kernel/msgmnb
-.\"O (see
-.\"O .BR msgop (2)
-.\"O and
-.\"O .BR msgctl (2)).
-¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë´Ø¤¹¤ë¾å¸Â
-.I msg_qbytes
-¤ò
-.I /proc/sys/kernel/msgmnb
-¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¾å¸Â¤è¤ê¤âÂ礭¤¯ÀßÄꤹ¤ë
-.RB ( msgop (2)
-¤È
-.BR msgctl (2)
-»²¾È)¡£
-.IP *
-.\"O use
-.\"O .BR F_SETPIPE_SZ
-.\"O to increase the capacity of a pipe above the limit specified by
-.\"O .IR /proc/sys/fs/pipe-max-size .
-.I /proc/sys/fs/pipe-max-size
-¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¾å¸Â¤òĶ¤¨¤Æ¥Ñ¥¤¥×¤ÎÍÆÎ̤òÁý¤ä¤¹¤Î¤Ë
-.B F_SETPIPE_SZ
-¤ò»ÈÍѤ¹¤ë¡£
+I/O ポート操作を実行する (\fBiopl\fP(2)、 \fBioperm\fP(2))。
+.IP *
+\fI/proc/kcore\fP にアクセスする。
+.IP *
+\fBFIBMAP\fP \fBioctl\fP(2) 操作を使用する。
+.IP *
+x86 モデルに固有のレジスター (MSR レジスター群、 \fBmsr\fP(4) 参照) にアクセスするためのデバイスをオープンする。
+.IP *
+\fI/proc/sys/vm/mmap_min_addr\fP を更新する。
+.IP *
+\fI/proc/sys/vm/mmap_min_addr\fP で指定された値よりも小さなアドレスにメモリーマッピングを作成する。
+.IP *
+\fI/proc/bus/pci\fP にあるファイルをマップする。
+.IP *
+\fI/dev/mem\fP や \fI/dev/kmem\fP をオープンする。
+.IP *
+各種の SCSI デバイスコマンドを実行する。
+.IP *
+\fBhpsa\fP(4) デバイスや \fBcciss\fP(4) デバイスの特定の操作を実行する。
+.IP *
+他のデバイスに対して各種のデバイス固有命令を実行する。
 .RE
 .PD
-.TP
-.B CAP_SYS_TIME
-.\"O Set system clock
-.\"O .RB ( settimeofday (2),
-.\"O .BR stime (2),
-.\"O .BR adjtimex (2));
-.\"O set real-time (hardware) clock.
-¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤òÊѹ¹¤¹¤ë
-.RB ( settimeofday (2),
-.BR stime (2),
-.BR adjtimex (2))¡£
-¥ê¥¢¥ë¥¿¥¤¥à (¥Ï¡¼¥É¥¦¥§¥¢) ¥¯¥í¥Ã¥¯¤òÊѹ¹¤¹¤ë¡£
-.TP
-.B CAP_SYS_TTY_CONFIG
-.\"O Use
-.\"O .BR vhangup (2).
-.BR vhangup (2)
-¤ò¸Æ¤Ó½Ð¤¹¡£
+.TP 
+\fBCAP_SYS_RESOURCE\fP
+.PD 0
+.RS
+.IP * 2
+ext2 ファイルシステム上の予約されている領域を使用する。
+.IP *
+ext3 のジャーナル機能を制御する \fBioctl\fP(2)  を使用する。
+.IP *
+ディスク quota の上限を上書きする。
+.IP *
+リソース上限を増やす (\fBsetrlimit\fP(2))。
+.IP *
+\fBRLIMIT_NPROC\fP リソース制限を上書きする。
+.IP *
+コンソール割り当てにおいてコンソールの最大数を上書きする。
+.IP *
+キーマップの最大数を上書きする。
+.IP *
+リアルタイムクロックから秒間 64 回を越える回数の割り当てが許可する。
+.IP *
+メッセージキューに関する上限 \fImsg_qbytes\fP を
+\fI/proc/sys/kernel/msgmnb\fP に指定されている上限よりも大きく設定する
+(\fBmsgop\fP(2) と \fBmsgctl\fP(2) 参照)。
+.IP *
+\fBF_SETPIPE_SZ\fP \fBfcntl\fP(2) を使ってパイプの容量を設定する際に
+上限 \fI/proc/sys/fs/pipe\-size\-max\fP を上書きする。
+.IP *
+\fI/proc/sys/fs/pipe\-max\-size\fP に指定されている上限を超えてパイプの容量
+を増やすのに \fBF_SETPIPE_SZ\fP を使用する。
+.IP *
+POSIX メッセージキューを作成する際に、
+上限 \fI/proc/sys/fs/mqueue/queues_max\fP を上書きする
+(\fBmq_overview\fP(7) 参照)。
+.IP *
+\fBprctl\fP(2) \fBPR_SET_MM\fP 操作を使用する。
+.IP *
+\fBCAP_SYS_RESOURCE\fP を持ったプロセスによって最後に設定された値よりも小さな値を \fI/proc/PID/oom_score_adj\fP
+に設定する。
+.RE
+.PD
+.TP 
+\fBCAP_SYS_TIME\fP
+システムクロックを変更する (\fBsettimeofday\fP(2), \fBstime\fP(2), \fBadjtimex\fP(2))。 リアルタイム
+(ハードウェア) クロックを変更する。
+.TP 
+\fBCAP_SYS_TTY_CONFIG\fP
+\fBvhangup\fP(2) を使用する。
+特権が必要な仮想端末に関する各種の \fBioctl\fP(2) 操作を利用できる。
+.TP 
+\fBCAP_SYSLOG\fP (Linux 2.6.37 以降)
+.RS
+.PD 0
+.IP * 3
+特権が必要な \fBsyslog\fP(2) 操作を実行できる。
+どの操作が特権が必要かについての情報は \fBsyslog\fP(2) を参照。
+.IP *
+\fI/proc/sys/kernel/kptr_restrict\fP の値が 1 の場合、 \fI/proc\fP
+や他のインターフェース経由で公開されているカーネルアドレスを参照する (\fBproc\fP(5) の \fIkptr_restrict\fP の議論を参照)。
+.PD
+.RE
+.TP 
+\fBCAP_WAKE_ALARM\fP (Linux 3.0 以降)
 .\"
-.\"O .SS Past and Current Implementation
-.SS ²áµî¤È¸½ºß¤Î¼ÂÁõ
-.\"O A full implementation of capabilities requires that:
-´°Á´¤Ê·Á¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼ÂÁõ¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤ÎÍ×·ï¤òËþ¤¿¤¹É¬Íפ¬¤¢¤ë¡§
+システムを起こすトリガーを有効にする (タイマー \fBCLOCK_REALTIME_ALARM\fP
+や \fBCLOCK_BOOTTIME_ALARM\fP を設定する)。
+.SS 過去と現在の実装
+完全な形のケーパビリティを実装するには、以下の要件を満たす必要がある:
 .IP 1. 3
-.\"O For all privileged operations,
-.\"O the kernel must check whether the thread has the required
-.\"O capability in its effective set.
-Á´¤Æ¤ÎÆø¢Áàºî¤Ë¤Ä¤¤¤Æ¡¢¥«¡¼¥Í¥ë¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤Î¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë
-ɬÍפʥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤¢¤ë¤«¤ò³Îǧ¤¹¤ë¡£
+全ての特権操作について、カーネルはそのスレッドの実効ケーパビリティセットに 必要なケーパビリティがあるかを確認する。
 .IP 2.
-.\"O The kernel must provide system calls allowing a thread's capability sets to
-.\"O be changed and retrieved.
-¥«¡¼¥Í¥ë¤Ç¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤òÊѹ¹¤·¤¿¤ê¡¢
-¼èÆÀ¤·¤¿¤ê¤Ç¤­¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Ä󶡤µ¤ì¤ë¡£
+カーネルで、あるスレッドのケーパビリティセットを変更したり、 取得したりできるシステムコールが提供される。
 .IP 3.
-.\"O The file system must support attaching capabilities to an executable file,
-.\"O so that a process gains those capabilities when the file is executed.
-¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¡¢¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÉÕÍ¿¤Ç¤­¡¢¥Õ¥¡¥¤¥ë
-¼Â¹Ô»þ¤Ë¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥×¥í¥»¥¹¤¬¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Êµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£
+ファイルシステムが、実行可能ファイルにケーパビリティを付与でき、ファイル 実行時にそのケーパビリティをプロセスが取得できるような機能をサポートする。
 .PP
-.\"O Before kernel 2.6.24, only the first two of these requirements are met;
-.\"O since kernel 2.6.24, all three requirements are met.
-¥«¡¼¥Í¥ë 2.6.24 ¤è¤êÁ°¤Ç¤Ï¡¢ºÇ½é¤Î 2¤Ä¤ÎÍ×·ï¤Î¤ß¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤ë¡£
-¥«¡¼¥Í¥ë 2.6.24 °Ê¹ß¤Ç¤Ï¡¢3¤Ä¤ÎÍ׷魯¤Ù¤Æ¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤ë¡£
 .\"
-.\"O .SS Thread Capability Sets
-.SS ¥¹¥ì¥Ã¥É¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È
-.\"O Each thread has three capability sets containing zero or more
-.\"O of the above capabilities:
-³Æ¥¹¥ì¥Ã¥É¤Ï°Ê²¼¤Î 3¼ïÎà¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò»ý¤Ä¡£³Æ¡¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ï
-¾åµ­¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÁȤ߹ç¤ï¤»¤Ç¤¢¤ë (Á´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Ìµ¸ú¤Ç¤â¤è¤¤)¡£
-.TP
-.\"O .IR Permitted :
-.\"O This is a limiting superset for the effective
-.\"O capabilities that the thread may assume.
-.\"O It is also a limiting superset for the capabilities that
-.\"O may be added to the inheritable set by a thread that does not have the
-.\"O .B CAP_SETPCAP
-.\"O capability in its effective set.
-.IR "µö²Ä (permitted)" :
-¤½¤Î¥¹¥ì¥Ã¥É¤¬»ý¤Ä¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î
-¸ÂÄêŪ¤Ê¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤¢¤ë¡£
-¤³¤ì¤Ï¡¢¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë
-.B CAP_SETPCAP
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¥¹¥ì¥Ã¥É¤¬·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë
-ÄɲòÄǽ¤Ê¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¸ÂÄêŪ¤Ê¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤â¤¢¤ë¡£
+カーネル 2.6.24 より前では、最初の 2つの要件のみが満たされている。 カーネル 2.6.24 以降では、3つの要件すべてが満たされている。
+.SS スレッドケーパビリティセット
+各スレッドは以下の 3種類のケーパビリティセットを持つ。各々のケーパビリティセットは 上記のケーパビリティの組み合わせである
+(全てのケーパビリティが無効でもよい)。
+.TP 
+\fI許可 (permitted)\fP:
+そのスレッドが持つことになっている実効ケーパビリティの 限定的なスーパーセットである。 これは、実効ケーパビリティセットに \fBCAP_SETPCAP\fP
+ケーパビリティを持っていないスレッドが継承可能ケーパビリティセットに 追加可能なケーパビリティの限定的なスーパーセットでもある。
 
-.\"O If a thread drops a capability from its permitted set,
-.\"O it can never reacquire that capability (unless it
-.\"O .BR execve (2)s
-.\"O either a set-user-ID-root program, or
-.\"O a program whose associated file capabilities grant that capability).
-µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤«¤éºï½ü¤·¤Æ¤·¤Þ¤Ã¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¡¢
-(set-user-ID-root ¥×¥í¥°¥é¥à¤«¡¢
-¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Çµö²Ä¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ò
-.BR execve (2)
-¤·¤Ê¤¤¸Â¤ê¤Ï) ¤â¤¦°ìÅÙ³ÍÆÀ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
-.TP
-.\"O .IR Inheritable :
-.\"O This is a set of capabilities preserved across an
-.\"O .BR execve (2).
-.\"O It provides a mechanism for a process to assign capabilities
-.\"O to the permitted set of the new program during an
-.\"O .BR execve (2).
-.IR "·Ñ¾µ²Äǽ (inheritable)" :
-.BR execve (2)
-¤òÁ°¸å¤ÇÊÝ»ý¤µ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ç¤¢¤ë¡£
-¤³¤Î»ÅÁȤߤò»È¤¦¤³¤È¤Ç¡¢¤¢¤ë¥×¥í¥»¥¹¤¬
-.BR execve (2)
-¤ò¹Ô¤¦ºÝ¤Ë¿·¤·¤¤¥×¥í¥°¥é¥à¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¤·¤Æ
-³ä¤êÅö¤Æ¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-.TP
-.\"O .IR Effective :
-.\"O This is the set of capabilities used by the kernel to
-.\"O perform permission checks for the thread.
-.IR "¼Â¸ú (effective)" :
-¥«¡¼¥Í¥ë¤¬¥¹¥ì¥Ã¥É¤Î¸¢¸Â (permission) ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤È¤­¤Ë
-»ÈÍѤ¹¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ç¤¢¤ë¡£
+許可ケーパビリティセットから削除してしまったケーパビリティは、 (set\-user\-ID\-root プログラムか、
+そのケーパビリティをファイルケーパビリティで許可しているプログラムを \fBexecve\fP(2)  しない限りは) もう一度獲得することはできない。
+.TP 
+\fI継承可能 (inheritable)\fP:
+\fBexecve\fP(2)  を前後で保持されるケーパビリティセットである。 この仕組みを使うことで、あるプロセスが \fBexecve\fP(2)
+を行う際に新しいプログラムの許可ケーパビリティセットとして 割り当てるケーパビリティを指定することができる。
+.TP 
+\fI実効 (effective)\fP:
+カーネルがスレッドの権限 (permission) をチェックするときに 使用するケーパビリティセットである。
 .PP
-.\"O A child created via
-.\"O .BR fork (2)
-.\"O inherits copies of its parent's capability sets.
-.\"O See below for a discussion of the treatment of capabilities during
-.\"O .BR execve (2).
-.BR fork (2)
-¤ÇºîÀ®¤µ¤ì¤ë»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£
-.BR execve (2)
-Ãæ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î°·¤¤¤Ë¤Ä¤¤¤Æ¤Ï²¼µ­¤ò»²¾È¤Î¤³¤È¡£
+\fBfork\fP(2)  で作成される子プロセスは、親のケーパビリティセットのコピーを継承する。 \fBexecve\fP(2)
+中のケーパビリティの扱いについては下記を参照のこと。
 .PP
-.\"O Using
-.\"O .BR capset (2),
-.\"O a thread may manipulate its own capability sets (see below).
-.BR capset (2)
-¤ò»È¤¦¤È¡¢¥×¥í¥»¥¹¤Ï¼«Ê¬¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È
-¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë (²¼µ­»²¾È)¡£
+\fBcapset\fP(2)  を使うと、プロセスは自分自身のケーパビリティセット を操作することができる (下記参照)。
+.PP
+.\" commit 73efc0394e148d0e15583e13712637831f926720
 .\"
-.\"O .SS File Capabilities
-.SS ¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£
-.\"O Since kernel 2.6.24, the kernel supports
-.\"O associating capability sets with an executable file using
-.\"O .BR setcap (8).
-.\"O The file capability sets are stored in an extended attribute (see
-.\"O .BR setxattr (2))
-.\"O named
-.\"O .IR "security.capability" .
-.\"O Writing to this extended attribute requires the
-.\"O .BR CAP_SETFCAP
-.\"O capability.
-¥«¡¼¥Í¥ë 2.6.24 °Ê¹ß¤Ç¤Ï¡¢
-.BR setcap (8)
-¤ò»È¤Ã¤Æ¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤òÂбþÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ï
-.I "security.capability"
-¤È¤¤¤¦Ì¾Á°¤Î³Èĥ°À­¤ËÊݸ¤µ¤ì¤ë
-.RB ( setxattr (2)
-»²¾È)¡£¤³¤Î³Èĥ°À­¤Ø¤Î½ñ¤­¹þ¤ß¤Ë¤Ï
-.B CAP_SETFCAP
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£
-.\"O The file capability sets,
-.\"O in conjunction with the capability sets of the thread,
-.\"O determine the capabilities of a thread after an
-.\"O .BR execve (2).
-¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎξÊý¤¬
-¹Í褵¤ì¡¢
-.BR execve (2)
-¸å¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬·èÄꤵ¤ì¤ë¡£
+Linux 3.2 以降では、 ファイル \fI/proc/sys/kernel/cap_last_cap\fP で、
+実行中のカーネルでサポートされているケーパビリティの最大値を参照できる。 この情報を使って、
+ケーパビリティセットに設定される可能性がある最上位ビットを判定することができる。
+.SS ファイルケーパビリティ
+カーネル 2.6.24 以降では、 \fBsetcap\fP(8)  を使って実行ファイルにケーパビリティセットを対応付けることができる。
+ファイルケーパビリティセットは \fIsecurity.capability\fP という名前の拡張属性に保存される (\fBsetxattr\fP(2)
+参照)。この拡張属性への書き込みには \fBCAP_SETFCAP\fP ケーパビリティが必要である。
+ファイルケーパビリティセットとスレッドのケーパビリティセットの両方が 考慮され、 \fBexecve\fP(2)
+後のスレッドのケーパビリティセットが決定される。
 
-.\"O The three file capability sets are:
-3 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
-.TP
-.\"O .IR Permitted " (formerly known as " forced ):
-.\"O These capabilities are automatically permitted to the thread,
-.\"O regardless of the thread's inheritable capabilities.
-.IR "µö²Ä (Permitted)" " (°ÊÁ°¤Î" "¶¯À© (Forced)" "):"
-¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ë´Ø¤ï¤é¤º¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ë¼«Æ°Åª¤Ë
-ǧ¤á¤é¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡£
-.TP
-.\"O .IR Inheritable " (formerly known as " allowed ):
-.\"O This set is ANDed with the thread's inheritable set to determine which
-.\"O inheritable capabilities are enabled in the permitted set of
-.\"O the thread after the
-.\"O .BR execve (2).
-.IR "·Ñ¾µ²Äǽ (Inheritable)" " (°ÊÁ°¤Î " "µöÍÆ (Allowed)" "):"
-¤³¤Î¥»¥Ã¥È¤È¡¢¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¤Î
-ÏÀÍýÀÑ (AND) ¤¬¤È¤é¤ì¡¢
-.BR execve (2)
-¤Î¸å¤Ë¤½¤Î¥¹¥ì¥Ã¥É¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤È¤Ê¤ë
-·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬·èÄꤵ¤ì¤ë¡£
-.TP
-.\"O .IR Effective :
-.IR "¼Â¸ú (Effective)" :
-.\"O This is not a set, but rather just a single bit.
-.\"O If this bit is set, then during an
-.\"O .BR execve (2)
-.\"O all of the new permitted capabilities for the thread are
-.\"O also raised in the effective set.
-.\"O If this bit is not set, then after an
-.\"O .BR execve (2),
-.\"O none of the new permitted capabilities is in the new effective set.
-¤³¤ì¤Ï½¸¹ç¤Ç¤Ï¤Ê¤¯¡¢1 ¥Ó¥Ã¥È¤Î¾ðÊó¤Ç¤¢¤ë¡£
-¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢
-.BR execve (2)
-¼Â¹ÔÃæ¤Ë¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Î¿·¤·¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Á´¤Æ
-¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£½¸¹ç¤Ë¤ª¤¤¤Æ¤â¥»¥Ã¥È¤µ¤ì¤ë¡£
-¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
-.BR execve (2)
-¸å¤Ë¤Ï¿·¤·¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¤É¤ì¤â¿·¤·¤¤¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£½¸¹ç
-¤Ë¥»¥Ã¥È¤µ¤ì¤Ê¤¤¡£
+3 つのファイルケーパビリティセットが定義されている。
+.TP 
+\fI許可 (Permitted)\fP (以前の\fI強制 (Forced)\fP):
+スレッドの継承可能ケーパビリティに関わらず、そのスレッドに自動的に 認められるケーパビリティ。
+.TP 
+\fI継承可能 (Inheritable)\fP (以前の \fI許容 (Allowed)\fP):
+このセットと、スレッドの継承可能ケーパビリティセットとの 論理積 (AND) がとられ、 \fBexecve\fP(2)
+の後にそのスレッドの許可ケーパビリティセットで有効となる 継承可能ケーパビリティが決定される。
+.TP 
+\fI実効 (effective)\fP:
+これは集合ではなく、1 ビットの情報である。 このビットがセットされていると、 \fBexecve\fP(2)
+実行中に、そのスレッドの新しい許可ケーパビリティが全て 実効ケーパビリティ集合においてもセットされる。 このビットがセットされていない場合、
+\fBexecve\fP(2)  後には新しい許可ケーパビリティのどれも新しい実効ケーパビリティ集合 にセットされない。
 
-.\"O Enabling the file effective capability bit implies
-.\"O that any file permitted or inheritable capability that causes a
-.\"O thread to acquire the corresponding permitted capability during an
-.\"O .BR execve (2)
-.\"O (see the transformation rules described below) will also acquire that
-.\"O capability in its effective set.
-¥Õ¥¡¥¤¥ë¤Î¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ó¥Ã¥È¤òÍ­¸ú¤Ë¤¹¤ë¤È¤¤¤¦¤Î¤Ï¡¢
-.BR execve (2)
-¼Â¹Ô»þ¤Ë¡¢¥Õ¥¡¥¤¥ë¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È·Ñ¾µ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ËÂбþ¤¹¤ë¤â¤Î¤¬
-¥¹¥ì¥Ã¥É¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¤·¤Æ¥»¥Ã¥È¤µ¤ì¤ë¤¬¡¢
-¤³¤ì¤¬¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë¤â¥»¥Ã¥È¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë
-(¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÊÑ´¹¥ë¡¼¥ë¤Ï²¼µ­»²¾È)¡£
-.\"O Therefore, when assigning capabilities to a file
-.\"O .RB ( setcap (8),
-.\"O .BR cap_set_file (3),
-.\"O .BR cap_set_fd (3)),
-.\"O if we specify the effective flag as being enabled for any capability,
-.\"O then the effective flag must also be specified as enabled
-.\"O for all other capabilities for which the corresponding permitted or
-.\"O inheritable flags is enabled.
-¤·¤¿¤¬¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³ä¤êÅö¤Æ¤ëºÝ
-.RB ( setcap (8),
-.BR cap_set_file (3),
-.BR cap_set_fd (3))¡¢
-¤¤¤º¤ì¤«¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ËÂФ·¤Æ¼Â¸ú¥Õ¥é¥°¤òÍ­¸ú¤È»ØÄꤹ¤ë¾ì¹ç¡¢
-µö²Ä¥Õ¥é¥°¤ä·Ñ¾µ²Äǽ¥Õ¥é¥°¤òÍ­¸ú¤Ë¤·¤¿Â¾¤ÎÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£
-¤Ë¤Ä¤¤¤Æ¤â¼Â¸ú¥Õ¥é¥°¤òÍ­¸ú¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 .\"
-.\"O .SS Transformation of Capabilities During execve()
-.SS "execve() Ãæ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÊÑ´¹"
+ファイルの実効ケーパビリティビットを有効にするというのは、 \fBexecve\fP(2)
+実行時に、ファイルの許可ケーパビリティと継承ケーパビリティに対応するものが スレッドの許可ケーパビリティセットとしてセットされるが、
+これが実効ケーパビリティセットにもセットされるということである (ケーパビリティの変換ルールは下記参照)。
+したがって、ファイルにケーパビリティを割り当てる際 (\fBsetcap\fP(8), \fBcap_set_file\fP(3),
+\fBcap_set_fd\fP(3))、 いずれかのケーパビリティに対して実効フラグを有効と指定する場合、
+許可フラグや継承可能フラグを有効にした他の全てのケーパビリティ についても実効フラグを有効と指定しなければならない。
+.SS "execve() 中のケーパビリティの変換"
 .PP
-.\"O During an
-.\"O .BR execve (2),
-.\"O the kernel calculates the new capabilities of
-.\"O the process using the following algorithm:
-.BR execve (2)
-¼Â¹Ô»þ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤Î¿·¤·¤¤¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼¡¤Î
-¥¢¥ë¥´¥ê¥º¥à¤òÍѤ¤¤Æ·×»»¤¹¤ë¡§
+\fBexecve\fP(2)  実行時に、カーネルはプロセスの新しいケーパビリティを次の アルゴリズムを用いて計算する:
 .in +4n
 .nf
 
@@ -916,577 +524,179 @@ P'(permitted) = (P(inheritable) & F(inheritable)) |
 
 P'(effective) = F(effective) ? P'(permitted) : 0
 
-.\"O P'(inheritable) = P(inheritable)    [i.e., unchanged]
-P'(inheritable) = P(inheritable)    [¤Ä¤Þ¤ê¡¢Êѹ¹¤µ¤ì¤Ê¤¤]
+P'(inheritable) = P(inheritable)    [つまり、変更されない]
 
 .fi
 .in
-.\"O where:
-³ÆÊÑ¿ô¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ê:
+各変数の意味は以下の通り:
 .RS 4
 .IP P 10
-.\"O denotes the value of a thread capability set before the
-.\"O .BR execve (2)
-.BR execve (2)
-Á°¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÃÍ
+\fBexecve\fP(2)  前のスレッドのケーパビリティセットの値
 .IP P'
-.\"O denotes the value of a capability set after the
-.\"O .BR execve (2)
-.BR execve (2)
-¸å¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÃÍ
+\fBexecve\fP(2)  後のスレッドのケーパビリティセットの値
 .IP F
-.\"O denotes a file capability set
-¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÃÍ
+ファイルケーパビリティセットの値
 .IP cap_bset
-.\"O is the value of the capability bounding set (described below).
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÎÃÍ (²¼µ­»²¾È)
+ケーパビリティバウンディングセットの値 (下記参照)
 .RE
 .\"
-.\"O .SS Capabilities and execution of programs by root
-.SS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È¡¢¥ë¡¼¥È¤Ë¤è¤ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô
-.\"O In order to provide an all-powerful
-.\"O .I root
-.\"O using capability sets, during an
-.\"O .BR execve (2):
-.BR execve (2)
-»þ¤Ë¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò»È¤Ã¤Æ¡¢Á´¤Æ¤Î¸¢¸Â¤ò»ý¤Ã¤¿
-.I root
-¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£
+.SS ケーパビリティと、ルートによるプログラムの実行
+\fBexecve\fP(2)  時に、ケーパビリティセットを使って、全ての権限を持った \fIroot\fP を実現するには、以下のようにする。
 .IP 1. 3
-.\"O If a set-user-ID-root program is being executed,
-.\"O or the real user ID of the process is 0 (root)
-.\"O then the file inheritable and permitted sets are defined to be all ones
-.\"O (i.e., all capabilities enabled).
-set-user-ID-root ¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤ë¾ì¹ç¡¢
-¤Þ¤¿¤Ï¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤¬ 0 (root) ¤Î¾ì¹ç¡¢
-¥Õ¥¡¥¤¥ë¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Èµö²Ä¥»¥Ã¥È¤òÁ´¤Æ 1
-(Á´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú) ¤ËÄêµÁ¤¹¤ë¡£
+set\-user\-ID\-root プログラムが実行される場合、 またはプロセスの実ユーザー ID が 0 (root) の場合、
+ファイルの継承可能セットと許可セットを全て 1 (全てのケーパビリティが有効) に定義する。
 .IP 2.
-.\"O If a set-user-ID-root program is being executed,
-.\"O then the file effective bit is defined to be one (enabled).
-set-user-ID-root ¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤ë¾ì¹ç¡¢
-¥Õ¥¡¥¤¥ë¤Î¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ó¥Ã¥È¤ò 1 (enabled) ¤ËÄêµÁ¤¹¤ë¡£
+set\-user\-ID\-root プログラムが実行される場合、 ファイルの実効ケーパビリティビットを 1 (enabled) に定義する。
 .PP
-.\"O The upshot of the above rules,
-.\"O combined with the capabilities transformations described above,
-.\"O is that when a process
-.\"O .BR execve (2)s
-.\"O a set-user-ID-root program, or when a process with an effective UID of 0
-.\"O .BR execve (2)s
-.\"O a program,
-.\"O it gains all capabilities in its permitted and effective capability sets,
-.\"O except those masked out by the capability bounding set.
-.\"O .\" If a process with real UID 0, and nonzero effective UID does an
-.\"O .\" exec(), then it gets all capabilities in its
-.\"O .\" permitted set, and no effective capabilities
-.\"O This provides semantics that are the same as those provided by
-.\"O traditional UNIX systems.
-¾åµ­¤Î¥ë¡¼¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ÊÑ´¹¤òŬÍѤ·¤¿·ë²Ì¤ò¤Þ¤È¤á¤ë¤È¡¢
-¥×¥í¥»¥¹¤¬ set-user-ID-root ¥×¥í¥°¥é¥à¤ò
-.BR execve (2)
-¤¹¤ë¾ì¹ç¡¢¤Þ¤¿¤Ï¼Â¸ú UID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤¬¥×¥í¥°¥é¥à¤ò
-.BR execve (2)
-¤¹¤ë¾ì¹ç¡¢µö²Ä¤È¼Â¸ú¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÁ´¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£
-(Àµ³Î¤Ë¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ë¤è¤ë¥Þ¥¹¥¯¤Ç½ü³°¤µ¤ì¤ë¤â¤Î
-°Ê³°¤ÎÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò¼èÆÀ¤¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£
-.\" ¼Â UID ¤¬ 0 ¤Ç¼Â¸ú UID ¤¬ 0 °Ê³°¤Î¥×¥í¥»¥¹¤¬ exec () ¤ò¹Ô¤¦¤È¡¢
-.\" µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ëÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£
-.\" ¤¬¼èÆÀ¤µ¤ì¡¢¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¼èÆÀ¤µ¤ì¤Ê¤¤¡£
-¤³¤ì¤Ë¤è¤ê¡¢ÅÁÅýŪ¤Ê UNIX ¥·¥¹¥Æ¥à¤ÈƱ¤¸¿¶¤ëÉñ¤¤¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
-.\"O .SS Capability bounding set
-.SS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È
-.\"O The capability bounding set is a security mechanism that can be used
-.\"O to limit the capabilities that can be gained during an
-.\"O .BR execve (2).
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È (capability bounding set) ¤Ï¡¢
-.BR execve (2)
-»þ¤Ë³ÍÆÀ¤Ç¤­¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë
-¥»¥­¥å¥ê¥Æ¥£µ¡¹½¤Ç¤¢¤ë¡£
-.\"O The bounding set is used in the following ways:
-¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï°Ê²¼¤Î¤è¤¦¤Ë»ÈÍѤµ¤ì¤ë¡£
+.\" If a process with real UID 0, and nonzero effective UID does an
+.\" exec(), then it gets all capabilities in its
+.\" permitted set, and no effective capabilities
+上記のルールにケーパビリティ変換を適用した結果をまとめると、 プロセスが set\-user\-ID\-root プログラムを \fBexecve\fP(2)
+する場合、または実効 UID が 0 のプロセスがプログラムを \fBexecve\fP(2)  する場合、許可と実効のケーパビリティセットの全ケーパビリティ
+(正確には、ケーパビリティバウンディングセットによるマスクで除外されるもの 以外の全てのケーパビリティ) を取得するということである。
+これにより、伝統的な UNIX システムと同じ振る舞いができるようになっている。
+.SS ケーパビリティバウンディングセット
+ケーパビリティバウンディングセット (capability bounding set) は、 \fBexecve\fP(2)
+時に獲得できるケーパビリティを制限するために使われる セキュリティ機構である。 バウンディングセットは以下のように使用される。
 .IP * 2
-.\"O During an
-.\"O .BR execve (2),
-.\"O the capability bounding set is ANDed with the file permitted
-.\"O capability set, and the result of this operation is assigned to the
-.\"O thread's permitted capability set.
-.\"O The capability bounding set thus places a limit on the permitted
-.\"O capabilities that may be granted by an executable file.
-.BR execve (2)
-¼Â¹Ô»þ¤Ë¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤È
-¥Õ¥¡¥¤¥ë¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÏÀÍýÏ (AND) ¤ò¼è¤Ã¤¿¤â¤Î¤¬¡¢
-¤½¤Î¥¹¥ì¥Ã¥É¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£
-¤Ä¤Þ¤ê¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢
-¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬Ç§¤á¤Æ¤¤¤ëµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ËÂФ·¤Æ
-À©¸Â¤ò²Ý¤¹Æ¯¤­¤ò¤¹¤ë¡£
-.IP *
-.\"O (Since Linux 2.6.25)
-.\"O The capability bounding set acts as a limiting superset for
-.\"O the capabilities that a thread can add to its inheritable set using
-.\"O .BR capset (2).
-.\"O This means that if a capability is not in the bounding set,
-.\"O then a thread can't add this capability to its
-.\"O inheritable set, even if it was in its permitted capabilities,
-.\"O and thereby cannot have this capability preserved in its
-.\"O permitted set when it
-.\"O .BR execve (2)s
-.\"O a file that has the capability in its inheritable set.
-(Linux 2.6.25 °Ê¹ß)
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢¥¹¥ì¥Ã¥É¤¬
-.BR capset (2)
-¤Ë¤è¤ê¼«¿È¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤ËÄɲòÄǽ¤Ê¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÊ콸ÃĤò
-À©¸Â¤¹¤ëÌò³ä¤ò»ý¤Ä¡£
-¥¹¥ì¥Ã¥É¤Ëµö²Ä¤µ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ç¤¢¤Ã¤Æ¤â¡¢¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ë
-´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥¹¥ì¥Ã¥É¤Ï¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¼«¿È¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë
-ÄɲäǤ­¤º¡¢¤½¤Î·ë²Ì¡¢·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤ò
-.BR execve (2)
-¤¹¤ë¾ì¹ç¡¢¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òµö²Ä¥»¥Ã¥È¤Ë»ý¤Á³¤±¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡¢
-¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£
+\fBexecve\fP(2)  実行時に、ケーパビリティバウンディングセットと ファイルの許可ケーパビリティセットの論理和 (AND) を取ったものが、
+そのスレッドの許可ケーパビリティセットに割り当てられる。 つまり、ケーパビリティバウンディングセットは、
+実行ファイルが認めている許可ケーパビリティに対して 制限を課す働きをする。
+.IP *
+(Linux 2.6.25 以降)  ケーパビリティバウンディングセットは、スレッドが \fBcapset\fP(2)
+により自身の継承可能セットに追加可能なケーパビリティの母集団を 制限する役割を持つ。
+スレッドに許可されたケーパビリティであっても、バウンディングセットに 含まれていなければ、スレッドはそのケーパビリティは自身の継承可能セットに
+追加できず、その結果、継承可能セットにそのケーパビリティを含むファイルを \fBexecve\fP(2)
+する場合、そのケーパビリティを許可セットに持ち続けることができない、 ということである。
 .PP
-.\"O Note that the bounding set masks the file permitted capabilities,
-.\"O but not the inherited capabilities.
-.\"O If a thread maintains a capability in its inherited set
-.\"O that is not in its bounding set,
-.\"O then it can still gain that capability in its permitted set
-.\"O by executing a file that has the capability in its inherited set.
-¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤¬¥Þ¥¹¥¯¤ò¹Ô¤¦¤Î¤Ï¡¢·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ç¤Ï¤Ê¤¯¡¢
-¥Õ¥¡¥¤¥ë¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥Þ¥¹¥¯¤ò¹Ô¤¦ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£
-¤¢¤ë¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë¤½¤Î¥¹¥ì¥Ã¥É¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ë
-¸ºß¤·¤Ê¤¤¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï¡¢
-·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢
-µö²Ä¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â³ÍÆÀ¤Ç¤­¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£
+バウンディングセットがマスクを行うのは、継承可能ケーパビリティではなく、 ファイルの許可ケーパビリティのマスクを行う点に注意すること。
+あるスレッドの継承可能セットにそのスレッドのバウンディングセットに 存在しないケーパビリティが含まれている場合、そのスレッドは、
+継承可能セットに含まれるケーパビリティを持つファイルを実行することにより、 許可セットに含まれるケーパビリティも獲得できるということである。
 .PP
-.\"O Depending on the kernel version, the capability bounding set is either
-.\"O a system-wide attribute, or a per-process attribute.
-¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï
-¥·¥¹¥Æ¥à¶¦Ä̤ΰÀ­¤Î¾ì¹ç¤È¡¢¥×¥í¥»¥¹Ã±°Ì¤Î°À­¤Î¾ì¹ç¤¬¤¢¤ë¡£
+カーネルのバージョンにより、ケーパビリティバウンディングセットは システム共通の属性の場合と、プロセス単位の属性の場合がある。
 .PP
-.\"O .B "Capability bounding set prior to Linux 2.6.25"
-.B "Linux 2.6.25 ¤è¤êÁ°¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È"
+\fBLinux 2.6.25 より前のケーパビリティバウンディングセット\fP
 .PP
-.\"O In kernels before 2.6.25, the capability bounding set is a system-wide
-.\"O attribute that affects all threads on the system.
-2.6.25 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï
-¥·¥¹¥Æ¥à¶¦Ä̤ΰÀ­¤Ç¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ËŬÍѤµ¤ì¤ë¡£
-.\"O The bounding set is accessible via the file
-.\"O .IR /proc/sys/kernel/cap-bound .
-.\"O motoki: accessible = ¡Ö»²¾È²Äǽ¡×¤Ç¤è¤¤¤«¡¢Ê¸Ì®¤òÍ׳Îǧ
-¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï
-.I /proc/sys/kernel/cap-bound
-¥Õ¥¡¥¤¥ë·Ðͳ¤Ç»²¾È¤Ç¤­¤ë¡£
-.\"O (Confusingly, this bit mask parameter is expressed as a
-.\"O signed decimal number in
-.\"O .IR /proc/sys/kernel/cap-bound .)
-(´Ö°ã¤¨¤ä¤¹¤¤¤¬¡¢¤³¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯·Á¼°¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢
-.I /proc/sys/kernel/cap-bound
-¤Ç¤ÏÉä¹æÉÕ¤­¤Î½½¿Ê¿ô¤Çɽ¸½¤µ¤ì¤ë¡£)
+2.6.25 より前のカーネルでは、ケーパビリティバウンディングセットは システム共通の属性で、システム上の全てのスレッドに適用される。
+バウンディングセットは \fI/proc/sys/kernel/cap\-bound\fP ファイル経由で参照できる。
+(間違えやすいが、このビットマスク形式のパラメーターは、 \fI/proc/sys/kernel/cap\-bound\fP
+では符号付きの十進数で表現される。)
 
-.\"O Only the
-.\"O .B init
-.\"O process may set capabilities in the capability bounding set;
-.\"O other than that, the superuser (more precisely: programs with the
-.\"O .B CAP_SYS_MODULE
-.\"O capability) may only clear capabilities from this set.
-.B init
-¥×¥í¥»¥¹¤À¤±¤¬¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ç
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-¤½¤ì°Ê³°¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶ (¤è¤êÀµ³Î¤Ë¤Ï¡¢
-.B CAP_SYS_MODULE
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤¿¥×¥í¥°¥é¥à) ¤¬¡¢
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥¯¥ê¥¢¤¬
-¤Ç¤­¤ë¤À¤±¤Ç¤¢¤ë¡£
+\fBinit\fP プロセスだけがケーパビリティバウンディングセットで ケーパビリティをセットすることができる。 それ以外では、スーパーユーザー
+(より正確には、 \fBCAP_SYS_MODULE\fP ケーパビリティを持ったプログラム) が、
+ケーパビリティバウンディングセットのケーパビリティのクリアが できるだけである。
 
-.\"O On a standard system the capability bounding set always masks out the
-.\"O .B CAP_SETPCAP
-.\"O capability.
-.\"O To remove this restriction (dangerous!), modify the definition of
-.\"O .B CAP_INIT_EFF_SET
-.\"O in
-.\"O .I include/linux/capability.h
-.\"O and rebuild the kernel.
-Ä̾ï¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢
-.B CAP_SETPCAP
-¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
-¤³¤ÎÀ©¸Â¤ò¼è¤êµî¤ë¤Ë¤Ï (¼è¤êµî¤ë¤Î¤Ï´í¸±!)¡¢
-.I include/linux/capability.h
-Æâ¤Î
-.B CAP_INIT_EFF_SET
-¤ÎÄêµÁ¤ò½¤Àµ¤·¡¢¥«¡¼¥Í¥ë¤òºÆ¹½ÃÛ¤¹¤ëɬÍפ¬¤¢¤ë¡£
+通常のシステムでは、ケーパビリティバウンディングセットは、 \fBCAP_SETPCAP\fP が無効になっている。 この制限を取り去るには
+(取り去るのは危険!)、 \fIinclude/linux/capability.h\fP 内の \fBCAP_INIT_EFF_SET\fP
+の定義を修正し、カーネルを再構築する必要がある。
 
-.\"O The system-wide capability bounding set feature was added
-.\"O to Linux starting with kernel version 2.2.11.
-¥·¥¹¥Æ¥à¶¦Ä̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥Èµ¡Ç½¤Ï¡¢
-¥«¡¼¥Í¥ë 2.2.11 °Ê¹ß¤Ç Linux ¤ËÄɲ䵤줿¡£
 .\"
+システム共通のケーパビリティバウンディングセット機能は、 カーネル 2.2.11 以降で Linux に追加された。
 .PP
-.\"O .B "Capability bounding set from Linux 2.6.25 onward"
-.B "Linux 2.6.25 °Ê¹ß¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È"
+\fBLinux 2.6.25 以降のケーパビリティバウンディングセット\fP
 .PP
-.\"O From Linux 2.6.25, the
-.\"O .I "capability bounding set"
-.\"O is a per-thread attribute.
-.\"O (There is no longer a system-wide capability bounding set.)
-Linux 2.6.25 °Ê¹ß¤Ç¤Ï¡¢
-¡Ö¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¡×¤Ï¥¹¥ì¥Ã¥Éñ°Ì¤Î°À­¤Ç¤¢¤ë
-(¥·¥¹¥Æ¥à¶¦Ä̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤)¡£
+Linux 2.6.25 以降では、 「ケーパビリティバウンディングセット」はスレッド単位の属性である
+(システム共通のケーパビリティバウンディングセットはもはや存在しない)。
 
-.\"O The bounding set is inherited at
-.\"O .BR fork (2)
-.\"O from the thread's parent, and is preserved across an
-.\"O .BR execve (2).
-¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï
-.BR fork (2)
-»þ¤Ë¤Ï¥¹¥ì¥Ã¥É¤Î¿Æ¥×¥í¥»¥¹¤«¤é·Ñ¾µ¤µ¤ì¡¢
-.BR execve (2)
-¤ÎÁ°¸å¤Ç¤ÏÊÝ»ý¤µ¤ì¤ë¡£
+バウンディングセットは \fBfork\fP(2)  時にはスレッドの親プロセスから継承され、 \fBexecve\fP(2)  の前後では保持される。
 
-.\"O A thread may remove capabilities from its capability bounding set using the
-.\"O .BR prctl (2)
-.\"O .B PR_CAPBSET_DROP
-.\"O operation, provided it has the
-.\"O .B CAP_SETPCAP
-.\"O capability.
-.\"O Once a capability has been dropped from the bounding set,
-.\"O it cannot be restored to that set.
-.\"O A thread can determine if a capability is in its bounding set using the
-.\"O .BR prctl (2)
-.\"O .B PR_CAPBSET_READ
-.\"O operation.
-¥¹¥ì¥Ã¥É¤¬
-.B CAP_SETPCAP
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï
-.BR prctl (2)
-¤Î
-.BR PR_CAPBSET_DROP
-Áàºî¤ò»È¤Ã¤Æ¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-¤¤¤Ã¤¿¤ó¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤éºï½ü¤·¤Æ¤·¤Þ¤¦¤È¡¢
-¥¹¥ì¥Ã¥É¤Ï¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºÆÅÙ¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
-.BR prctl (2)
-¤Î
-.B PR_CAPBSET_READ
-Áàºî¤ò»È¤¦¤³¤È¤Ç¡¢¥¹¥ì¥Ã¥É¤¬¤¢¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¼«¿È¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È
-¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£
+スレッドが \fBCAP_SETPCAP\fP ケーパビリティを持っている場合、そのスレッドは \fBprctl\fP(2)  の
+\fBPR_CAPBSET_DROP\fP 操作を使って自身のケーパビリティバウンディングセットから ケーパビリティを削除することができる。
+いったんケーパビリティをバウンディングセットから削除してしまうと、 スレッドはそのケーパビリティを再度セットすることはできない。 \fBprctl\fP(2)
+の \fBPR_CAPBSET_READ\fP 操作を使うことで、スレッドがあるケーパビリティが自身のバウンディングセット
+に含まれているかを知ることができる。
 
-.\"O Removing capabilities from the bounding set is only supported if file
-.\"O capabilities are compiled into the kernel
-.\"O (CONFIG_SECURITY_FILE_CAPABILITIES).
-.\"O In that case, the
-.\"O .B init
-.\"O process (the ancestor of all processes) begins with a full bounding set.
-.\"O If file capabilities are not compiled into the kernel, then
-.\"O .B init
-.\"O begins with a full bounding set minus
-.\"O .BR CAP_SETPCAP ,
-.\"O because this capability has a different meaning when there are
-.\"O no file capabilities.
-¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Îºï½ü¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Î¤Ï¡¢
-¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç
-(CONFIG_SECURITY_FILE_CAPABILITIES) ¤À¤±¤Ç¤¢¤ë¡£
-¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ (Á´¤Æ¤Î¥×¥í¥»¥¹¤ÎÀèÁĤǤ¢¤ë) 
-.I init
-¥×¥í¥»¥¹¤Ï¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÇÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬
-¥»¥Ã¥È¤µ¤ì¤¿¾õÂ֤dz«»Ï¤¹¤ë¡£
-¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢
-.I init
-¤Ï¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ç
-.B CAP_SETPCAP
-°Ê³°¤ÎÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥»¥Ã¥È¤µ¤ì¤¿¾õÂ֤dz«»Ï¤¹¤ë¡£
-¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢
-.B CAP_SETPCAP
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï
-°ã¤Ã¤¿°ÕÌ£¤ò»ý¤Ä¤«¤é¤Ç¤¢¤ë¡£
+バウンディングセットからのケーパビリティの削除がサポートされるのは、
+カーネルのコンパイル時にファイルケーパビリティが有効になっている場合
+だけである。Linux 2.6.33 より前のカーネルでは、ファイルケーパビリティは
+設定オプション \fBCONFIG_SECURITY_FILE_CAPABILITIES\fP で切り替えられる追加の
+機能であった。Linux 2.6.33 以降では、この設定オプションは削除され、
+ファイルケーパビリティは常にカーネルに組込まれるようになった。
+ファイルケーパビリティがカーネルにコンパイル時に組み込まれている場合、
+(全てのプロセスの先祖である) \fIinit\fP プロセスはバウンディングセットで
+全てのケーパビリティが セットされた状態で開始する。ファイルケーパビリティ
+が有効になっていない場合には、 \fIinit\fP はバウンディングセットで
+\fBCAP_SETPCAP\fP 以外の全てのケーパビリティがセットされた状態で開始する。
+このようになっているのは、 \fBCAP_SETPCAP\fP ケーパビリティがファイルケー
+パビリティがサポートされていない場合には 違った意味を持つからである。
 
-.\"O Removing a capability from the bounding set does not remove it
-.\"O from the thread's inherited set.
-.\"O However it does prevent the capability from being added
-.\"O back into the thread's inherited set in the future.
-¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºï½ü¤·¤Æ¤â¡¢
-¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤«¤é¤Ï¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ïºï½ü¤µ¤ì¤Ê¤¤¡£
-¤·¤«¤·¤Ê¤¬¤é¡¢¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¤Îºï½ü¤Ë¤è¤ê¡¢
-¤³¤ÎÀ褽¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤ËÄɲ乤뤳¤È
-¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ë¡£
 .\"
 .\"
-.\"O .SS Effect of User ID Changes on Capabilities
-.SS "¥æ¡¼¥¶ ID Êѹ¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ø¤Î±Æ¶Á"
-.\"O To preserve the traditional semantics for transitions between
-.\"O 0 and nonzero user IDs,
-.\"O the kernel makes the following changes to a thread's capability
-.\"O sets on changes to the thread's real, effective, saved set,
-.\"O and file system user IDs (using
-.\"O .BR setuid (2),
-.\"O .BR setresuid (2),
-.\"O or similar):
-¥æ¡¼¥¶ ID ¤¬ 0 ¤È 0 °Ê³°¤Î´Ö¤ÇÊѲ½¤¹¤ëºÝ¤Î¿¶¤ëÉñ¤¤¤ò½¾Íè¤ÈƱ¤¸¤Ë¤¹¤ë¤¿¤á¡¢
-¥¹¥ì¥Ã¥É¤Î¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬
-.RB ( setuid (2),
-.BR setresuid (2)
-¤Ê¤É¤ò»È¤Ã¤Æ) Êѹ¹¤µ¤ì¤¿ºÝ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë
-°Ê²¼¤ÎÊѹ¹¤ò¹Ô¤¦:
+バウンディングセットからケーパビリティを削除しても、 スレッドの継承可能セットからはそのケーパビリティは削除されない。
+しかしながら、バウンディングセットからの削除により、 この先そのケーパビリティをスレッドの継承可能セットに追加すること はできなくなる。
+.SS "ユーザー ID 変更のケーパビリティへの影響"
+ユーザー ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、 スレッドの実 UID、実効 UID、保存
+set\-user\-ID、ファイルシステム UID が (\fBsetuid\fP(2), \fBsetresuid\fP(2)  などを使って)
+変更された際に、カーネルはそのスレッドのケーパビリティセットに 以下の変更を行う:
 .IP 1. 3
-.\"O If one or more of the real, effective or saved set user IDs
-.\"O was previously 0, and as a result of the UID changes all of these IDs
-.\"O have a nonzero value,
-.\"O then all capabilities are cleared from the permitted and effective
-.\"O capability sets.
-UID ¤ÎÊѹ¹Á°¤Ë¤Ï¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤Î¤¦¤Á
-¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¬ 0 ¤Ç¡¢Êѹ¹¸å¤Ë¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤¬
-¤¹¤Ù¤Æ 0 °Ê³°¤ÎÃͤˤʤ俾ì¹ç¡¢µö²Ä¤È¼Â¸ú¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î
-Á´¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¯¥ê¥¢¤¹¤ë¡£
+UID の変更前には実 UID、実効 UID、保存 set\-user\-ID のうち 少なくとも一つが 0 で、変更後に実 UID、実効 UID、保存
+set\-user\-ID が すべて 0 以外の値になった場合、許可と実効のケーパビリティセットの 全ケーパビリティをクリアする。
 .IP 2.
-.\"O If the effective user ID is changed from 0 to nonzero,
-.\"O then all capabilities are cleared from the effective set.
-¼Â¸ú UID ¤¬ 0 ¤«¤é 0 °Ê³°¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢
-¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÁ´¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¯¥ê¥¢¤¹¤ë¡£
+実効 UID が 0 から 0 以外に変更された場合、 実効ケーパビリティセットの全ケーパビリティをクリアする。
 .IP 3.
-.\"O If the effective user ID is changed from nonzero to 0,
-.\"O then the permitted set is copied to the effective set.
-¼Â¸ú UID ¤¬ 0 °Ê³°¤«¤é 0 ¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢
-µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÆâÍƤò¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë¥³¥Ô¡¼¤¹¤ë¡£
+実効 UID が 0 以外から 0 に変更された場合、 許可ケーパビリティセットの内容を実効ケーパビリティセットにコピーする。
 .IP 4.
-.\"O If the file system user ID is changed from 0 to nonzero (see
-.\"O .BR setfsuid (2))
-.\"O then the following capabilities are cleared from the effective set:
-.\"O .BR CAP_CHOWN ,
-.\"O .BR CAP_DAC_OVERRIDE ,
-.\"O .BR CAP_DAC_READ_SEARCH ,
-.\"O .BR CAP_FOWNER ,
-.\"O .BR CAP_FSETID ,
-.\"O .B CAP_LINUX_IMMUTABLE
-.\"O (since Linux 2.2.30),
-.\"O .BR CAP_MAC_OVERRIDE ,
-.\"O and
-.\"O .B CAP_MKNOD
-.\"O (since Linux 2.2.30).
-¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬ 0 ¤«¤é 0 °Ê³°¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç
-.RB ( setfsuid (2)
-»²¾È)¡¢¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î°Ê²¼¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥¯¥ê¥¢¤µ¤ì¤ë:
-.BR CAP_CHOWN ,
-.BR CAP_DAC_OVERRIDE ,
-.BR CAP_DAC_READ_SEARCH ,
-.BR CAP_FOWNER ,
-.BR CAP_FSETID ,
-.B CAP_LINUX_IMMUTABLE
-(Linux 2.2.30 °Ê¹ß),
-.BR CAP_MAC_OVERRIDE ,
-.B CAP_MKNOD
-(Linux 2.2.30 °Ê¹ß)¡£
-.\"O If the file system UID is changed from nonzero to 0,
-.\"O then any of these capabilities that are enabled in the permitted set
-.\"O are enabled in the effective set.
-¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬ 0 °Ê³°¤«¤é 0 ¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢
-¾åµ­¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¤¦¤Áµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤â¤Î¤¬
-¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤Ë¤µ¤ì¤ë¡£
+ファイルシステム UID が 0 から 0 以外に変更された場合 (\fBsetfsuid\fP(2)
+参照)、実効ケーパビリティセットの以下のケーパビリティがクリアされる: \fBCAP_CHOWN\fP, \fBCAP_DAC_OVERRIDE\fP,
+\fBCAP_DAC_READ_SEARCH\fP, \fBCAP_FOWNER\fP, \fBCAP_FSETID\fP, \fBCAP_LINUX_IMMUTABLE\fP
+(Linux 2.6.30 以降), \fBCAP_MAC_OVERRIDE\fP, \fBCAP_MKNOD\fP (Linux 2.6.30 以降)。
+ファイルシステム UID が 0 以外から 0 に変更された場合、 上記のケーパビリティのうち許可ケーパビリティセットで有効になっているものが
+実効ケーパビリティセットで有効にされる。
 .PP
-.\"O If a thread that has a 0 value for one or more of its user IDs wants
-.\"O to prevent its permitted capability set being cleared when it resets
-.\"O all of its user IDs to nonzero values, it can do so using the
-.\"O .BR prctl (2)
-.\"O .B PR_SET_KEEPCAPS
-.\"O operation.
-³Æ¼ï UID ¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¬ 0 ¤Ç¤¢¤ë¥¹¥ì¥Ã¥É¤¬¡¢
-¤½¤Î UID ¤ÎÁ´¤Æ¤¬ 0 °Ê³°¤Ë¤Ê¤Ã¤¿¤È¤­¤Ëµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬
-¥¯¥ê¥¢¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢
-.BR prctl (2)
-¤Î
-.B PR_SET_KEEPCAPS
-Áàºî¤ò»È¤¨¤Ð¤è¤¤¡£
 .\"
-.\"O .SS Programmatically adjusting capability sets
-.SS ¥×¥í¥°¥é¥à¤Ç¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤òÄ´À°¤¹¤ë
-.\"O A thread can retrieve and change its capability sets using the
-.\"O .BR capget (2)
-.\"O and
-.\"O .BR capset (2)
-.\"O system calls.
-.\"O However, the use of
-.\"O .BR cap_get_proc (3)
-.\"O and
-.\"O .BR cap_set_proc (3),
-.\"O both provided in the
-.\"O .I libcap
-.\"O package,
-.\"O is preferred for this purpose.
-³Æ¥¹¥ì¥Ã¥É¤Ï¡¢
-.BR capget (2)
-¤ä
-.BR capset (2)
-¤ò»È¤Ã¤Æ¡¢¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò¼èÆÀ¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë¡£
-¤¿¤À¤·¡¢¤³¤ì¤ò¹Ô¤¦¤Ë¤Ï¡¢
-.I libcap
-¥Ñ¥Ã¥±¡¼¥¸¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë
-.BR cap_get_proc (3)
-¤ä
-.BR cap_set_proc (3)
-¤ò»È¤¦¤Î¤¬Ë¾¤Þ¤·¤¤¡£
-.\"O The following rules govern changes to the thread capability sets:
-¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÊѹ¹¤Ë¤Ï°Ê²¼¤Î¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ë¡£
+各種 UID のうち少なくとも一つが 0 であるスレッドが、 その UID の全てが 0 以外になったときに許可ケーパビリティセットが
+クリアされないようにしたい場合には、 \fBprctl\fP(2)  の \fBPR_SET_KEEPCAPS\fP 操作を使えばよい。
+.SS プログラムでケーパビリティセットを調整する
+各スレッドは、 \fBcapget\fP(2)  や \fBcapset\fP(2)  を使って、自身のケーパビリティセットを取得したり変更したりできる。
+ただし、これを行うには、 \fIlibcap\fP パッケージで提供されている \fBcap_get_proc\fP(3)  や
+\fBcap_set_proc\fP(3)  を使うのが望ましい。 スレッドのケーパビリティセットの変更には以下のルールが適用される。
 .IP 1. 3
-.\"O If the caller does not have the
-.\"O .B CAP_SETPCAP
-.\"O capability,
-.\"O the new inheritable set must be a subset of the combination
-.\"O of the existing inheritable and permitted sets.
-.\"O [XXX] motoki: combination ¤Ã¤Æ AND ? OR ?
-¸Æ¤Ó½Ð¤·Â¦¤¬
-.B CAP_SETPCAP
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¿·¤·¤¤·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ï¡¢
-´û¸¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Èµö²Ä¥»¥Ã¥È¤ÎÀѽ¸¹ç (AND) ¤ÎÉôʬ½¸¹ç¤Ç
-¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+呼び出し側が \fBCAP_SETPCAP\fP ケーパビリティを持っていない場合、新しい継承可能セットは、 既存の継承可能セットと許可セットの積集合
+(AND) の部分集合で なければならない。
 .IP 2.
-.\"O (Since kernel 2.6.25)
-.\"O The new inheritable set must be a subset of the combination of the
-.\"O existing inheritable set and the capability bounding set.
-.\"O [XXX] motoki: combination ¤Ã¤Æ AND ? OR ?
-(¥«¡¼¥Í¥ë 2.6.25 °Ê¹ß)
-¿·¤·¤¤·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ï¡¢´û¸¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦
-¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÎÀѽ¸¹ç (AND) ¤ÎÉôʬ½¸¹ç¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+(Linux 2.6.25 以降)  新しい継承可能セットは、既存の継承可能セットとケーパビリティ バウンディングセットの積集合 (AND)
+の部分集合でなければならない。
 .IP 3.
-.\"O The new permitted set must be a subset of the existing permitted set
-.\"O (i.e., it is not possible to acquire permitted capabilities
-.\"O that the thread does not currently have).
-¿·¤·¤¤µö²Ä¥»¥Ã¥È¤Ï¡¢´û¸¤Îµö²Ä¥»¥Ã¥È¤ÎÉôʬ½¸¹ç¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
-(¤Ä¤Þ¤ê¡¢¤½¤Î¥¹¥ì¥Ã¥É¤¬¸½ºß»ý¤Ã¤Æ¤¤¤Ê¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò
-³ÍÆÀ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤)¡£
+新しい許可セットは、既存の許可セットの部分集合でなければならない (つまり、そのスレッドが現在持っていない許可ケーパビリティを
+獲得することはできない)。
 .IP 4.
-.\"O The new effective set must be a subset of the new permitted set.
-¿·¤·¤¤¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ï¿·¤·¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î
-Éôʬ½¸¹ç¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-.\"O .SS The """securebits"" flags: establishing a capabilities-only environment
-.SS securebits ¥Õ¥é¥°: ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤À¤±¤Î´Ä¶­¤ò¹½ÃÛ¤¹¤ë
+新しい実効ケーパビリティセットは新しい許可ケーパビリティセットの 部分集合になっていなければならない。
+.SS "securebits フラグ: ケーパビリティだけの環境を構築する"
 .\" For some background:
 .\"       see http://lwn.net/Articles/280279/ and
 .\"       http://article.gmane.org/gmane.linux.kernel.lsm/5476/
-.\"O Starting with kernel 2.6.26,
-.\"O and with a kernel in which file capabilities are enabled,
-.\"O Linux implements a set of per-thread
-.\"O .I securebits
-.\"O flags that can be used to disable special handling of capabilities for UID 0
-.\"O .RI ( root ).
-¥«¡¼¥Í¥ë 2.6.26 °Ê¹ß¤Ç¡¢
-¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿¥«¡¼¥Í¥ë¤Ç¤Ï¡¢
-¥¹¥ì¥Ã¥Éñ°Ì¤Î
-.I securebits
-¥Õ¥é¥°¤¬¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È UID 0
-.RI ( root )
-¤ËÂФ¹¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÆÃÊÌ°·¤¤¤ò̵¸ú¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-.\"O These flags are as follows:
-°Ê²¼¤Î¤è¤¦¤Ê¥Õ¥é¥°¤¬¤¢¤ë¡£
-.TP
-.B SECBIT_KEEP_CAPS
-.\"O Setting this flag allows a thread that has one or more 0 UIDs to retain
-.\"O its capabilities when it switches all of its UIDs to a nonzero value.
-.\"O If this flag is not set,
-.\"O then such a UID switch causes the thread to lose all capabilities.
-.\"O This flag is always cleared on an
-.\"O .BR execve (2).
-.\"O (This flag provides the same functionality as the older
-.\"O .BR prctl (2)
-.\"O .B PR_SET_KEEPCAPS
-.\"O operation.)
-¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢UID ¤¬ 0 ¤Î¥¹¥ì¥Ã¥É¤Î UID ¤¬ 0 °Ê³°¤ÎÃͤË
-ÀÚ¤êÂؤï¤ëºÝ¤Ë¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò°Ý»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢UID ¤¬ 0 ¤«¤é 0 °Ê³°¤ÎÃͤË
-ÀÚ¤êÂؤï¤ë¤È¡¢¤½¤Î¥¹¥ì¥Ã¥É¤ÏÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼º¤¦¡£
-¤³¤Î¥Õ¥é¥°¤Ï
-.BR execve (2)
-»þ¤Ë¤ÏÁ´¤Æ¥¯¥ê¥¢¤µ¤ì¤ë
-(¤³¤Î¥Õ¥é¥°¤Ï¡¢°ÊÁ°¤Î
-.BR prctl (2)
-¤Î
-.B PR_SET_KEEPCAPS
-Áàºî¤ÈƱ¤¸µ¡Ç½¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë)¡£
-.TP
-.B SECBIT_NO_SETUID_FIXUP
-.\"O Setting this flag stops the kernel from adjusting  capability sets when
-.\"O the threads's effective and file system UIDs are switched between
-.\"O zero and nonzero values.
-.\"O (See the subsection
-.\"O .IR "Effect of User ID Changes on Capabilities" .)
-¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢¥¹¥ì¥Ã¥É¤Î¼Â¸ú UID ¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬
-0 ¤È 0 °Ê³°¤Î´Ö¤ÇÀÚ¤êÂؤï¤Ã¤¿¾ì¹ç¤Ë¡¢
-¥«¡¼¥Í¥ë¤Ï¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÄ´À°¤ò¹Ô¤ï¤Ê¤¯¤Ê¤ë
-(¡Ö¥æ¡¼¥¶ ID Êѹ¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ø¤Î±Æ¶Á¡×¤ÎÀá¤ò»²¾È)¡£
-.TP
-.B SECBIT_NOROOT
-.\"O If this bit is set, then the kernel does not grant capabilities
-.\"O when a set-user-ID-root program is executed, or when a process with
-.\"O an effective or real UID of 0 calls
-.\"O .BR execve (2).
-.\"O (See the subsection
-.\"O .IR "Capabilities and execution of programs by root" .)
-¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
-set-user-ID-root ¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ¤ä¡¢
-¼Â¸ú UID ¤« ¼Â UID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤¬
-.BR execve (2)
-¤ò¸Æ¤Ó½Ð¤·¤¿»þ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òµö²Ä¤·¤Ê¤¤
-(¡Ö¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È¡¢¥ë¡¼¥È¤Ë¤è¤ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô¡×¤ÎÀá¤ò»²¾È)¡£
+カーネル 2.6.26 以降で、 ファイルケーパビリティが有効になったカーネルでは、 スレッド単位の \fIsecurebits\fP
+フラグが実装されており、このフラグを使うと UID 0 (\fIroot\fP)  に対するケーパビリティの特別扱いを無効することができる。
+以下のようなフラグがある。
+.TP 
+\fBSECBIT_KEEP_CAPS\fP
+このフラグをセットされている場合、UID が 0 のスレッドの UID が 0 以外の値に
+切り替わる際に、そのスレッドはケーパビリティを維持することができる。 このフラグがセットされていない場合には、UID が 0 から 0 以外の値に
+切り替わると、そのスレッドは全てのケーパビリティを失う。 このフラグは \fBexecve\fP(2)  時には全てクリアされる (このフラグは、以前の
+\fBprctl\fP(2)  の \fBPR_SET_KEEPCAPS\fP 操作と同じ機能を提供するものである)。
+.TP 
+\fBSECBIT_NO_SETUID_FIXUP\fP
+このフラグをセットすると、スレッドの実効 UID とファイルシステム UID が 0 と 0 以外の間で切り替わった場合に、
+カーネルはケーパビリティセットの調整を行わなくなる (「ユーザー ID 変更のケーパビリティへの影響」の節を参照)。
+.TP 
+\fBSECBIT_NOROOT\fP
+このビットがセットされている場合、 set\-user\-ID\-root プログラムの実行時や、 実効 UID か 実 UID が 0 のプロセスが
+\fBexecve\fP(2)  を呼び出した時に、カーネルはケーパビリティを許可しない (「ケーパビリティと、ルートによるプログラムの実行」の節を参照)。
 .PP
-.\"O Each of the above "base" flags has a companion "locked" flag.
-.\"O Setting any of the "locked" flags is irreversible,
-.\"O and has the effect of preventing further changes to the
-.\"O corresponding "base" flag.
-.\"O The locked flags are:
-.\"O .BR SECBIT_KEEP_CAPS_LOCKED ,
-.\"O .BR SECBIT_NO_SETUID_FIXUP_LOCKED ,
-.\"O and
-.\"O .BR SECBIT_NOROOT_LOCKED .
-¾åµ­¤Î "base" ¥Õ¥é¥°¤Î³Æ¡¹¤Ë¤ÏÂбþ¤¹¤ë "locked" ¥Õ¥é¥°¤¬Â¸ºß¤¹¤ë¡£
-¤¤¤º¤ì¤Î "locked" ¥Õ¥é¥°¤â°ìÅÙ¥»¥Ã¥È¤µ¤ì¤ë¤ÈÌ᤹¤³¤È¤Ï¤Ç¤­¤º¡¢
-¤½¤ì°Ê¹ß¤ÏÂбþ¤¹¤ë "base" ¥Õ¥é¥°¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¡£
-"locked" ¥Õ¥é¥°¤Ï
-.BR SECBIT_KEEP_CAPS_LOCKED ,
-.BR SECBIT_NO_SETUID_FIXUP_LOCKED ,
-.BR SECBIT_NOROOT_LOCKED
-¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ë¡£
+上記の "base" フラグの各々には対応する "locked" フラグが存在する。 いずれの "locked"
+フラグも一度セットされると戻すことはできず、 それ以降は対応する "base" フラグを変更することができなくなる。 "locked" フラグは
+\fBSECBIT_KEEP_CAPS_LOCKED\fP, \fBSECBIT_NO_SETUID_FIXUP_LOCKED\fP,
+\fBSECBIT_NOROOT_LOCKED\fP という名前である。
 .PP
-.\"O The
-.\"O .I securebits
-.\"O flags can be modified and retrieved using the
-.\"O .BR prctl (2)
-.\"O .B PR_SET_SECUREBITS
-.\"O and
-.\"O .B PR_GET_SECUREBITS
-.\"O operations.
-.\"O The
-.\"O .B CAP_SETPCAP
-.\"O capability is required to modify the flags.
-.I securebits
-¥Õ¥é¥°¤Ï¡¢
-.BR prctl (2)
-¤ÎÁàºî
-.B PR_SET_SECUREBITS
-¤ä
-.B PR_GET_SECUREBITS
-¤ò»È¤¦¤³¤È¤ÇÊѹ¹¤·¤¿¤ê¼èÆÀ¤·¤¿¤ê¤Ç¤­¤ë¡£
-¥Õ¥é¥°¤òÊѹ¹¤¹¤ë¤Ë¤Ï
-.B CAP_SETPCAP
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£
+\fIsecurebits\fP フラグは、 \fBprctl\fP(2)  の操作 \fBPR_SET_SECUREBITS\fP や
+\fBPR_GET_SECUREBITS\fP を使うことで変更したり取得したりできる。 フラグを変更するには \fBCAP_SETPCAP\fP
+ケーパビリティが必要である。
 
-.\"O The
-.\"O .I securebits
-.\"O flags are inherited by child processes.
-.\"O During an
-.\"O .BR execve (2),
-.\"O all of the flags are preserved, except
-.\"O .B SECURE_KEEP_CAPS
-.\"O which is always cleared.
-.I securebits
-¥Õ¥é¥°¤Ï»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤ë¡£
-.BR execve (2)
-¤Ë¤ª¤¤¤Æ¤Ï¡¢
-.B SECURE_KEEP_CAPS
-¤¬¾ï¤Ë¥¯¥ê¥¢¤µ¤ì¤ë°Ê³°¤Ï¡¢Á´¤Æ¤Î¥Õ¥é¥°¤¬ÊÝ»ý¤µ¤ì¤ë¡£
+\fIsecurebits\fP フラグは子プロセスに継承される。 \fBexecve\fP(2) においては、
+\fBSECBIT_KEEP_CAPS\fP が常にクリアされる以外は、全てのフラグが保持される。
 
-.\"O An application can use the following call to lock itself,
-.\"O and all of its descendants,
-.\"O into an environment where the only way of gaining capabilities
-.\"O is by executing a program with associated file capabilities:
-¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢°Ê²¼¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤³¤È¤Ë¤è¤ê¡¢
-¼«Ê¬¼«¿È¤ª¤è¤Ó»Ò¹¤È¤Ê¤ë¥×¥í¥»¥¹Á´¤Æ¤ËÂФ·¤Æ¡¢
-ɬÍפʥե¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Ê¤¤¸Â¤ê¡¢
-Âбþ¤¹¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³ÍÆÀ¤Ç¤­¤Ê¤¤¤è¤¦¤Ê¾õ¶·¤ËÊĤ¸¤³¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+アプリケーションは、以下の呼び出しを行うことにより、 自分自身および子孫となるプロセス全てに対して、
+必要なファイルケーパビリティを持ったプログラムを実行しない限り、 対応するケーパビリティを獲得できないような状況に閉じこめることができる。
 .in +4n
 .nf
 
@@ -1498,125 +708,50 @@ prctl(PR_SET_SECUREBITS,
         SECBIT_NOROOT_LOCKED);
 .fi
 .in
-.\"O .SH "CONFORMING TO"
-.SH ½àµò
+.SS ユーザー名前空間との相互作用
+ケーパリビティとユーザー名前空間の相互の影響に関する議論は \fBuser_namespaces\fP(7) を参照。
+.SH 準拠
 .PP
-.\"O No standards govern capabilities, but the Linux capability implementation
-.\"O is based on the withdrawn POSIX.1e draft standard; see
-.\"O .IR http://wt.xpilot.org/publications/posix.1e/ .
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ë´Ø¤¹¤ëɸ½à¤Ï¤Ê¤¤¤¬¡¢ Linux ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÏÇѰƤˤʤä¿
-POSIX.1e Áð°Æ¤Ë´ð¤Å¤¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£
-.I http://wt.xpilot.org/publications/posix.1e/
-¤ò»²¾È¡£
-.\"O .SH NOTES
-.SH Ãí°Õ
-.\"O Since kernel 2.5.27, capabilities are an optional kernel component,
-.\"O and can be enabled/disabled via the CONFIG_SECURITY_CAPABILITIES
-.\"O kernel configuration option.
-¥«¡¼¥Í¥ë 2.5.27 °Ê¹ß¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÏÁªÂò¼°¤Î¥«¡¼¥Í¥ë¥³¥ó¥Ý¡¼¥Í¥ó¥È
-¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó CONFIG_SECURITY_CAPABILITIES
-¤Ë¤è¤êÍ­¸ú/̵¸ú¤òÀÚ¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+ケーパビリティに関する標準はないが、 Linux のケーパビリティは廃案になった POSIX.1e 草案に基づいて実装されている。
+.UR http://wt.xpilot.org\:/publications\:/posix.1e/
+.UE
+を参照。
+.SH 注意
+カーネル 2.5.27 以降、ケーパビリティは選択式のカーネルコンポーネント となっており、カーネル設定オプション
+\fBCONFIG_SECURITY_CAPABILITIES\fP により有効/無効を切り替えることができる。
 
-.\"O The
-.\"O .I /proc/PID/task/TID/status
-.\"O file can be used to view the capability sets of a thread.
-.\"O The
-.\"O .I /proc/PID/status
-.\"O file shows the capability sets of a process's main thread.
-.I /proc/PID/task/TID/status
-¥Õ¥¡¥¤¥ë¤ò»È¤¦¤È¡¢¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-.I /proc/PID/status
-¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥×¥í¥»¥¹¤Î¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬É½¼¨¤µ¤ì¤ë¡£
+.\" 7b9a7ec565505699f503b4fcf61500dceb36e744
+\fI/proc/PID/task/TID/status\fP ファイルを使うと、スレッドのケーパビリティセットを見ることができる。
+\fI/proc/PID/status\fP ファイルには、プロセスのメインスレッドのケーパビリティセットが表示される。 Linux 3.8 より前では、
+これらのケーパビリティセットの表示で、 存在しないケーパビリティはすべて有効 (1) として表示される。 Linux 3.8 以降では、
+存在しないケーパビリティはすべて無効 (0) として表示される。 (\fBCAP_LAST_CAP\fP
+より大きい値を持つケーパビリティが存在しないケーパビリティである)。
 
-.\"O The
-.\"O .I libcap
-.\"O package provides a suite of routines for setting and
-.\"O getting capabilities that is more comfortable and less likely
-.\"O to change than the interface provided by
-.\"O .BR capset (2)
-.\"O and
-.\"O .BR capget (2).
-.I libcap
-¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀßÄꡦ¼èÆÀ¤¹¤ë¤¿¤á¤Î
-¥ë¡¼¥Á¥ó·²¤òÄ󶡤·¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢
-.BR capset (2)
-¤È
-.BR capget (2)
-¤¬Ä󶡤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÈÈæ¤Ù¤Æ¡¢¤è¤ê»È¤¤¤ä¤¹¤¯¡¢Êѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¾¯¤Ê¤¤¡£
-.\"O This package also provides the
-.\"O .BR setcap (8)
-.\"O and
-.\"O .BR getcap (8)
-.\"O programs.
-.\"O It can be found at
-.\"O .br
-.\"O .IR http://www.kernel.org/pub/linux/libs/security/linux-privs .
-¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Ï¡¢
-.BR setcap (8),
-.BR getcap (8)
-¤È¤¤¤¦¥×¥í¥°¥é¥à¤âÄ󶡤µ¤ì¤Æ¤¤¤ë¡£
-¥Ñ¥Ã¥±¡¼¥¸¤Ï
-.I http://www.kernel.org/pub/linux/libs/security/linux-privs
-¤ÇÆþ¼ê¤Ç¤­¤ë¡£
+\fIlibcap\fP パッケージは、ケーパビリティを設定・取得するための ルーチン群を提供している。これらのインターフェースは、 \fBcapset\fP(2)
+と \fBcapget\fP(2)  が提供するインターフェースと比べて、より使いやすく、変更される可能性が少ない。 このパッケージでは、
+\fBsetcap\fP(8), \fBgetcap\fP(8)  というプログラムも提供されている。 パッケージは以下で入手できる。
+.br
+.UR http://www.kernel.org\:/pub\:/linux\:/libs\:/security\:/linux\-privs
+.UE .
 
-.\"O Before kernel 2.6.24, and since kernel 2.6.24 if
-.\"O file capabilities are not enabled, a thread with the
-.\"O .B CAP_SETPCAP
-.\"O capability can manipulate the capabilities of threads other than itself.
-.\"O However, this is only theoretically possible,
-.\"O since no thread ever has
-.\"O .BR CAP_SETPCAP
-.\"O in either of these cases:
-¥Ð¡¼¥¸¥ç¥ó 2.6.24 ¤è¤êÁ°¡¢¤ª¤è¤Ó¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬
-Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤2.6.24 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢
-.B CAP_SETPCAP
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤¿¥¹¥ì¥Ã¥É¤Ï¼«Ê¬°Ê³°¤Î¥¹¥ì¥Ã¥É¤Î
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÁàºî¤Ç¤­¤ë¡£
-¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤ì¤ÏÍýÏÀŪ¤Ë²Äǽ¤È¤¤¤¦¤À¤±¤Ç¤¢¤ë¡£
-°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¡¢¤É¤Î¥¹¥ì¥Ã¥É¤â
-.BR CAP_SETPCAP
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¤³¤È¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
+バージョン 2.6.24 より前、およびファイルケーパビリティが 有効になっていない2.6.24 以降のカーネルでは、 \fBCAP_SETPCAP\fP
+ケーパビリティを持ったスレッドは自分以外のスレッドの ケーパビリティを操作できる。 しかしながら、これは理論的に可能というだけである。
+以下のいずれかの場合においても、どのスレッドも \fBCAP_SETPCAP\fP ケーパビリティを持つことはないからである。
 .IP * 2
-.\"O In the pre-2.6.25 implementation the system-wide capability bounding set,
-.\"O .IR /proc/sys/kernel/cap-bound ,
-.\"O always masks out this capability, and this can not be changed
-.\"O without modifying the kernel source and rebuilding.
-2.6.25 ¤è¤êÁ°¤Î¼ÂÁõ¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¶¦Ä̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È
-.I /proc/sys/kernel/cap-bound
-¤Ç¤Ï¤³¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¾ï¤Ë̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢
-¥½¡¼¥¹¤òÊѹ¹¤·¤Æ¥«¡¼¥Í¥ë¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤¸Â¤ê¡¢
-¤³¤ì¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
-.IP *
-.\"O If file capabilities are disabled in the current implementation, then
-.\"O .B init
-.\"O starts out with this capability removed from its per-process bounding
-.\"O set, and that bounding set is inherited by all other processes
-.\"O created on the system.
-¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢
-¥×¥í¥»¥¹Ëè¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¤³¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÈ´¤¤¤Æ
-.B init
-¤Ï³«»Ï¤µ¤ì¡¢
-¥·¥¹¥Æ¥à¾å¤ÇÀ¸À®¤µ¤ì¤ë¾¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤Ç¤³¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤¬
-·Ñ¾µ¤µ¤ì¤ë¡£
-.\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
-.BR capget (2),
-.BR prctl (2),
-.BR setfsuid (2),
-.BR cap_clear (3),
-.BR cap_copy_ext (3),
-.BR cap_from_text (3),
-.BR cap_get_file (3),
-.BR cap_get_proc (3),
-.BR cap_init (3),
-.BR capgetp (3),
-.BR capsetp (3),
-.BR credentials (7),
-.BR pthreads (7),
-.BR getcap (8),
-.BR setcap (8)
+2.6.25 より前の実装では、システム共通のケーパビリティバウンディングセット \fI/proc/sys/kernel/cap\-bound\fP
+ではこのケーパビリティは常に無効になっており、 ソースを変更してカーネルを再コンパイルしない限り、 これを変更することはできない。
+.IP *
+現在の実装ではファイルケーパビリティが無効になっている場合、 プロセス毎のバウンディングセットからこのケーパビリティを抜いて \fBinit\fP
+は開始され、 システム上で生成される他の全てのプロセスでこのバウンディングセットが 継承される。
+.SH 関連項目
+\fBcapsh\fP(1), \fBsetpriv\fP(2), \fBprctl\fP(2), \fBsetfsuid\fP(2), \fBcap_clear\fP(3),
+\fBcap_copy_ext\fP(3), \fBcap_from_text\fP(3), \fBcap_get_file\fP(3),
+\fBcap_get_proc\fP(3), \fBcap_init\fP(3), \fBcapgetp\fP(3), \fBcapsetp\fP(3),
+\fBlibcap\fP(3), \fBcredentials\fP(7), \fBuser_namespaces\fP(7), \fBpthreads\fP(7),
+\fBgetcap\fP(8), \fBsetcap\fP(8)
 .PP
-.\"O .I include/linux/capability.h
-.\"O in the kernel source
-¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î
-.I include/linux/capability.h
+Linux カーネルソース内の \fIinclude/linux/capability.h\fP
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。