OSDN Git Service

(split) LDP: Translate capabilities.7.
authorAkihiro MOTOKI <amotoki@gmail.com>
Wed, 30 May 2012 22:39:14 +0000 (07:39 +0900)
committerAkihiro MOTOKI <amotoki@gmail.com>
Wed, 30 May 2012 22:40:02 +0000 (07:40 +0900)
draft/man7/capabilities.7 [new file with mode: 0644]
po4a/process/po/ja.po
release/man7/capabilities.7
translation_list

diff --git a/draft/man7/capabilities.7 b/draft/man7/capabilities.7
new file mode 100644 (file)
index 0000000..e8874b8
--- /dev/null
@@ -0,0 +1,658 @@
+.\" Copyright (c) 2002 by Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" 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.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date.  The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein.  The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" 6 Aug 2002 - Initial Creation
+.\" Modified 2003-05-23, Michael Kerrisk, <mtk.manpages@gmail.com>
+.\" Modified 2004-05-27, Michael Kerrisk, <mtk.manpages@gmail.com>
+.\" 2004-12-08, mtk Added O_NOATIME for CAP_FOWNER
+.\" 2005-08-16, mtk, Added CAP_AUDIT_CONTROL and CAP_AUDIT_WRITE
+.\" 2008-07-15, Serge Hallyn <serue@us.bbm.com>
+.\"     Document file capabilities, per-process capability
+.\"     bounding set, changed semantics for CAP_SETPCAP,
+.\"     and other changes in 2.6.2[45].
+.\"     Add CAP_MAC_ADMIN, CAP_MAC_OVERRIDE, CAP_SETFCAP.
+.\" 2008-07-15, mtk
+.\"     Add text describing circumstances in which CAP_SETPCAP
+.\"     (theoretically) permits a thread to change the
+.\"     capability sets of another thread.
+.\"     Add section describing rules for programmatically
+.\"     adjusting thread capability sets.
+.\"     Describe rationale for capability bounding set.
+.\"     Document "securebits" flags.
+.\"     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.
+.\"
+.\"*******************************************************************
+.TH CAPABILITIES 7 2012\-04\-15 Linux "Linux Programmer's Manual"
+.SH 名前
+capabilities \- Linux のケーパビリティ (capability) の概要
+.SH 説明
+権限のチェックを行う観点から見ると、伝統的な UNIX の実装では プロセスは二つのカテゴリに分類できる: \fI特権\fP プロセス (実効ユーザID が
+0 のプロセス。ユーザID 0 は スーパーユーザや root と呼ばれる) と \fI非特権\fP プロセス (実効ユーザID が 0 以外のプロセス)
+である。 非特権プロセスでは、プロセスの資格情報 (通常は、実効UID 、実効GID と追加のグループリスト) に基づく権限チェックが行われるのに対し、
+特権プロセスでは全てのカーネルの権限チェックがバイパスされる。
+
+.\"
+バージョン 2.2 以降の Linux では、 これまでスーパーユーザに結び付けられてきた権限を、 いくつかのグループに分割している。これらのグループは
+\fIケーパビリティ\fP(capability)  と呼ばれ、グループ毎に独立に有効、無効を設定できる。 ケーパビリティはスレッド単位の属性である。
+.SS ケーパビリティのリスト
+以下のリストは、 Linux で実装されているケーパビリティと 各ケーパビリティが許可する操作と動作をまとめたものである。
+.TP 
+\fBCAP_AUDIT_CONTROL\fP (Linux 2.6.11 以降)
+カーネル監査 (audit) の有効無効の切り替え、 監査のフィルタルールの変更、 監査の状況やフィルタルールの取得ができる。
+.TP 
+\fBCAP_AUDIT_WRITE\fP (Linux 2.6.11 以降)
+カーネル監査のログにレコードを書き込む。
+.TP 
+\fBCAP_CHOWN\fP
+ファイルの UID とGID を任意に変更する (\fBchown\fP(2)  参照)。
+.TP 
+\fBCAP_DAC_OVERRIDE\fP
+ファイルの読み出し、書き込み、実行の権限チェックをバイパスする (DAC は "discretionary access control
+(任意のアクセス制御)" の略である)。
+.TP 
+\fBCAP_DAC_READ_SEARCH\fP
+ファイルの読み出し権限のチェックとディレクトリの読み出しと実行 の権限チェックをバイパスする。
+.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 
+\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?
+シグナルを送信する際に権限チェックをバイパスする (\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
+拡張ファイル属性 \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 を渡すことができる。
+.TP 
+\fBCAP_SETFCAP\fP (Linux 2.6.24 以降)
+ファイルケーパビリティを設定する。
+.TP 
+\fBCAP_SETPCAP\fP
+ファイルケーパビリティがサポートされていない場合: 呼び出し元が許可されているケーパビリティセットに含まれる任意のケーパビリティを、
+他のプロセスに付与したり、削除したりできる。 (カーネルがファイルケーパビリティをサポートしている場合、 \fBCAP_SETPCAP\fP
+はこの役割を持たない。 なぜなら、ファイルケーパビリティをサポートしているカーネルでは \fBCAP_SETPCAP\fP は全く別の意味を持つからである。)
+
+ファイルケーパビリティがサポートされている場合: 呼び出し元スレッドのバウンディングセットの任意のケーパビリティを
+自身の継承可能ケーパビリティセットに追加できる。 (\fBprctl\fP(2)  \fBPR_CAPBSET_DROP\fP を使って)
+バウンディングセットからケーパビリティを削除できる。 \fIsecurebits\fP フラグを変更できる。
+.TP 
+\fBCAP_SETUID\fP
+.\" FIXME CAP_SETUID also an effect in exec(); document this.
+プロセスの UID に対する任意の操作 (\fBsetuid\fP(2), \fBsetreuid\fP(2), \fBsetresuid\fP(2),
+\fBsetfsuid\fP(2))  を行う。 UNIX ドメインソケット経由でソケットの資格情報 (credential) を渡す際に 偽の UID
+を渡すことができる。
+.TP 
+\fBCAP_SYS_ADMIN\fP
+.PD 0
+.RS
+.IP * 2
+以下のシステム管理用の操作を実行する: \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 *
+拡張属性 \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 *
+ソケットの資格情報 (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
+フラグを利用する。
+.IP *
+\fBperf_event_open\fP(2) を呼び出す。
+.IP *
+特権が必要な \fIperf\fP イベントの情報にアクセスする。
+.IP *
+\fBsetns\fP(2) を呼び出す。
+.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 
+\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
+プロセスの nice 値の引き上げ (\fBnice\fP(2), \fBsetpriority\fP(2))  や、任意のプロセスの nice 値の変更を行う。
+.IP *
+呼び出し元プロセスに対するリアルタイムスケジューリングポリシーと、 任意のプロセスに対するスケジューリングポリシーと優先度を設定する
+(\fBsched_setscheduler\fP(2), \fBsched_setparam\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);
+\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
+\fBptrace\fP(2)  を使って任意のプロセスをトレースする。 任意のプロセスに \fBget_robust_list\fP(2)  を適用する。
+.TP 
+\fBCAP_SYS_RAWIO\fP
+I/O ポート操作を実行する (\fBiopl\fP(2)、 \fBioperm\fP(2))。
+\fI/proc/kcore\fP にアクセスする。
+\fBFIBMAP\fP \fBioctl\fP(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 操作を使用する。
+.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 以降)
+特権が必要な \fBsyslog\fP(2) 操作を実行できる。
+どの操作が特権が必要かについての情報は \fBsyslog\fP(2) を参照。
+.TP 
+\fBCAP_WAKE_ALARM\fP (Linux 3.0 以降)
+.\"
+システムを起こすトリガーを有効にする (タイマー \fBCLOCK_REALTIME_ALARM\fP
+や \fBCLOCK_BOOTTIME_ALARM\fP を設定する)。
+.SS 過去と現在の実装
+完全な形のケーパビリティを実装するには、以下の要件を満たす必要がある:
+.IP 1. 3
+全ての特権操作について、カーネルはそのスレッドの実効ケーパビリティセットに 必要なケーパビリティがあるかを確認する。
+.IP 2.
+カーネルで、あるスレッドのケーパビリティセットを変更したり、 取得したりできるシステムコールが提供される。
+.IP 3.
+ファイルシステムが、実行可能ファイルにケーパビリティを付与でき、ファイル 実行時にそのケーパビリティをプロセスが取得できるような機能をサポートする。
+.PP
+.\"
+カーネル 2.6.24 より前では、最初の 2つの要件のみが満たされている。 カーネル 2.6.24 以降では、3つの要件すべてが満たされている。
+.SS スレッドケーパビリティセット
+各スレッドは以下の 3種類のケーパビリティセットを持つ。各々のケーパビリティセットは 上記のケーパビリティの組み合わせである
+(全てのケーパビリティが無効でもよい)。
+.TP 
+\fI許可 (permitted)\fP:
+そのスレッドが持つことになっている実効ケーパビリティの 限定的なスーパーセットである。 これは、実効ケーパビリティセットに \fBCAP_SETPCAP\fP
+ケーパビリティを持っていないスレッドが継承可能ケーパビリティセットに 追加可能なケーパビリティの限定的なスーパーセットでもある。
+
+許可ケーパビリティセットから削除してしまったケーパビリティは、 (set\-user\-ID\-root プログラムか、
+そのケーパビリティをファイルケーパビリティで許可しているプログラムを \fBexecve\fP(2)  しない限りは) もう一度獲得することはできない。
+.TP 
+\fI継承可能 (inheritable)\fP:
+\fBexecve\fP(2)  を前後で保持されるケーパビリティセットである。 この仕組みを使うことで、あるプロセスが \fBexecve\fP(2)
+を行う際に新しいプログラムの許可ケーパビリティセットとして 割り当てるケーパビリティを指定することができる。
+.TP 
+\fI実効 (effective)\fP:
+カーネルがスレッドの権限 (permission) をチェックするときに 使用するケーパビリティセットである。
+.PP
+\fBfork\fP(2)  で作成される子プロセスは、親のケーパビリティセットのコピーを継承する。 \fBexecve\fP(2)
+中のケーパビリティの扱いについては下記を参照のこと。
+.PP
+.\"
+\fBcapset\fP(2)  を使うと、プロセスは自分自身のケーパビリティセット を操作することができる (下記参照)。
+.SS ファイルケーパビリティ
+カーネル 2.6.24 以降では、 \fBsetcap\fP(8)  を使って実行ファイルにケーパビリティセットを対応付けることができる。
+ファイルケーパビリティセットは \fIsecurity.capability\fP という名前の拡張属性に保存される (\fBsetxattr\fP(2)
+参照)。この拡張属性への書き込みには \fBCAP_SETFCAP\fP ケーパビリティが必要である。
+ファイルケーパビリティセットとスレッドのケーパビリティセットの両方が 考慮され、 \fBexecve\fP(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)  後には新しい許可ケーパビリティのどれも新しい実効ケーパビリティ集合 にセットされない。
+
+.\"
+ファイルの実効ケーパビリティビットを有効にするというのは、 \fBexecve\fP(2)
+実行時に、ファイルの許可ケーパビリティと継承ケーパビリティに対応するものが スレッドの許可ケーパビリティセットとしてセットされるが、
+これが実効ケーパビリティセットにもセットされるということである (ケーパビリティの変換ルールは下記参照)。
+したがって、ファイルにケーパビリティを割り当てる際 (\fBsetcap\fP(8), \fBcap_set_file\fP(3),
+\fBcap_set_fd\fP(3))、 いずれかのケーパビリティに対して実効フラグを有効と指定する場合、
+許可フラグや継承可能フラグを有効にした他の全てのケーパビリティ についても実効フラグを有効と指定しなければならない。
+.SS "execve() 中のケーパビリティの変換"
+.PP
+\fBexecve\fP(2)  実行時に、カーネルはプロセスの新しいケーパビリティを次の アルゴリズムを用いて計算する:
+.in +4n
+.nf
+
+P'(permitted) = (P(inheritable) & F(inheritable)) |
+                (F(permitted) & cap_bset)
+
+P'(effective) = F(effective) ? P'(permitted) : 0
+
+P'(inheritable) = P(inheritable)    [つまり、変更されない]
+
+.fi
+.in
+各変数の意味は以下の通り:
+.RS 4
+.IP P 10
+\fBexecve\fP(2)  前のスレッドのケーパビリティセットの値
+.IP P'
+\fBexecve\fP(2)  後のスレッドのケーパビリティセットの値
+.IP F
+ファイルケーパビリティセットの値
+.IP cap_bset
+ケーパビリティバウンディングセットの値 (下記参照)
+.RE
+.\"
+.SS ケーパビリティと、ルートによるプログラムの実行
+\fBexecve\fP(2)  時に、ケーパビリティセットを使って、全ての権限を持った \fIroot\fP を実現するには、以下のようにする。
+.IP 1. 3
+set\-user\-ID\-root プログラムが実行される場合、 またはプロセスの実ユーザ ID が 0 (root) の場合、
+ファイルの継承可能セットと許可セットを全て 1 (全てのケーパビリティが有効) に定義する。
+.IP 2.
+set\-user\-ID\-root プログラムが実行される場合、 ファイルの実効ケーパビリティビットを 1 (enabled) に定義する。
+.PP
+.\" 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
+\fBexecve\fP(2)  実行時に、ケーパビリティ・バウンディングセットと ファイルの許可ケーパビリティセットの論理和 (AND) を取ったものが、
+そのスレッドの許可ケーパビリティセットに割り当てられる。 つまり、ケーパビリティ・バウンディングセットは、
+実行ファイルが認めている許可ケーパビリティに対して 制限を課す働きをする。
+.IP *
+(Linux 2.6.25 以降)  ケーパビリティ・バウンディングセットは、スレッドが \fBcapset\fP(2)
+により自身の継承可能セットに追加可能なケーパビリティの母集団を 制限する役割を持つ。
+スレッドに許可されたケーパビリティであっても、バウンディングセットに 含まれていなければ、スレッドはそのケーパビリティは自身の継承可能セットに
+追加できず、その結果、継承可能セットにそのケーパビリティを含むファイルを \fBexecve\fP(2)
+する場合、そのケーパビリティを許可セットに持ち続けることができない、 ということである。
+.PP
+バウンディングセットがマスクを行うのは、継承可能ケーパビリティではなく、 ファイルの許可ケーパビリティのマスクを行う点に注意すること。
+あるスレッドの継承可能セットにそのスレッドのバウンディングセットに 存在しないケーパビリティが含まれている場合、そのスレッドは、
+継承可能セットに含まれるケーパビリティを持つファイルを実行することにより、 許可セットに含まれるケーパビリティも獲得できるということである。
+.PP
+カーネルのバージョンにより、ケーパビリティ・バウンディングセットは システム共通の属性の場合と、プロセス単位の属性の場合がある。
+.PP
+\fBLinux 2.6.25 より前のケーパビリティ・バウンディングセット\fP
+.PP
+2.6.25 より前のカーネルでは、ケーパビリティ・バウンディングセットは システム共通の属性で、システム上の全てのスレッドに適用される。
+バウンディングセットは \fI/proc/sys/kernel/cap\-bound\fP ファイル経由で参照できる。
+(間違えやすいが、このビットマスク形式のパラメータは、 \fI/proc/sys/kernel/cap\-bound\fP では符号付きの十進数で表現される。)
+
+\fBinit\fP プロセスだけがケーパビリティ・バウンディングセットで ケーパビリティをセットすることができる。 それ以外では、スーパーユーザ
+(より正確には、 \fBCAP_SYS_MODULE\fP ケーパビリティを持ったプログラム) が、
+ケーパビリティ・バウンディングセットのケーパビリティのクリアが できるだけである。
+
+通常のシステムでは、ケーパビリティ・バウンディングセットは、 \fBCAP_SETPCAP\fP が無効になっている。 この制限を取り去るには
+(取り去るのは危険!)、 \fIinclude/linux/capability.h\fP 内の \fBCAP_INIT_EFF_SET\fP
+の定義を修正し、カーネルを再構築する必要がある。
+
+.\"
+システム共通のケーパビリティ・バウンディングセット機能は、 カーネル 2.2.11 以降で Linux に追加された。
+.PP
+\fBLinux 2.6.25 以降のケーパビリティ・バウンディングセット\fP
+.PP
+Linux 2.6.25 以降では、 「ケーパビリティ・バウンディングセット」はスレッド単位の属性である
+(システム共通のケーパビリティ・バウンディングセットはもはや存在しない)。
+
+バウンディングセットは \fBfork\fP(2)  時にはスレッドの親プロセスから継承され、 \fBexecve\fP(2)  の前後では保持される。
+
+スレッドが \fBCAP_SETPCAP\fP ケーパビリティを持っている場合、そのスレッドは \fBprctl\fP(2)  の
+\fBPR_CAPBSET_DROP\fP 操作を使って自身のケーパビリティ・バウンディングセットから ケーパビリティを削除することができる。
+いったんケーパビリティをバウンディングセットから削除してしまうと、 スレッドはそのケーパビリティを再度セットすることはできない。 \fBprctl\fP(2)
+の \fBPR_CAPBSET_READ\fP 操作を使うことで、スレッドがあるケーパビリティが自身のバウンディングセット
+に含まれているかを知ることができる。
+
+バウンディングセットからのケーパビリティの削除がサポートされるのは、
+カーネルのコンパイル時にファイルケーパビリティが有効になっている場合
+だけである。Linux 2.6.33 より前のカーネルでは、ファイルケーパビリティは
+設定オプション CONFIG_SECURITY_FILE_CAPABILITIES で切り替えられる追加の
+機能であった。Linux 2.6.33 以降では、この設定オプションは削除され、
+ファイルケーパビリティは常にカーネルに組込まれるようになった。
+ファイルケーパビリティがカーネルにコンパイル時に組み込まれている場合、
+(全てのプロセスの先祖である) \fIinit\fP プロセスはバウンディングセットで
+全てのケーパビリティが セットされた状態で開始する。ファイルケーパビリティ
+が有効になっていない場合には、 \fIinit\fP はバウンディングセットで
+\fBCAP_SETPCAP\fP 以外の全てのケーパビリティがセットされた状態で開始する。
+このようになっているのは、 \fBCAP_SETPCAP\fP ケーパビリティがファイルケー
+パビリティがサポートされていない場合には 違った意味を持つからである。
+
+.\"
+.\"
+バウンディングセットからケーパビリティを削除しても、 スレッドの継承可能セットからはそのケーパビリティは削除されない。
+しかしながら、バウンディングセットからの削除により、 この先そのケーパビリティをスレッドの継承可能セットに追加すること はできなくなる。
+.SS "ユーザ ID 変更のケーパビリティへの影響"
+ユーザ ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、 スレッドの実 UID、実効 UID、保存
+set\-user\-ID、ファイルシステム UID が (\fBsetuid\fP(2), \fBsetresuid\fP(2)  などを使って)
+変更された際に、カーネルはそのスレッドのケーパビリティセットに 以下の変更を行う:
+.IP 1. 3
+UID の変更前には実 UID、実効 UID、保存 set\-user\-ID のうち 少なくとも一つが 0 で、変更後に実 UID、実効 UID、保存
+set\-user\-ID が すべて 0 以外の値になった場合、許可と実効のケーパビリティセットの 全ケーパビリティをクリアする。
+.IP 2.
+実効 UID が 0 から 0 以外に変更された場合、 実効ケーパビリティセットの全ケーパビリティをクリアする。
+.IP 3.
+実効 UID が 0 以外から 0 に変更された場合、 許可ケーパビリティセットの内容を実効ケーパビリティセットにコピーする。
+.IP 4.
+ファイルシステム 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.2.30 以降), \fBCAP_MAC_OVERRIDE\fP, \fBCAP_MKNOD\fP (Linux 2.2.30 以降)。
+ファイルシステム UID が 0 以外から 0 に変更された場合、 上記のケーパビリティのうち許可ケーパビリティセットで有効になっているものが
+実効ケーパビリティセットで有効にされる。
+.PP
+.\"
+各種 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
+呼び出し側が \fBCAP_SETPCAP\fP ケーパビリティを持っていない場合、新しい継承可能セットは、 既存の継承可能セットと許可セットの積集合
+(AND) の部分集合で なければならない。
+.IP 2.
+(カーネル 2.6.25 以降)  新しい継承可能セットは、既存の継承可能セットとケーパビリティ・ バウンディングセットの積集合 (AND)
+の部分集合でなければならない。
+.IP 3.
+新しい許可セットは、既存の許可セットの部分集合でなければならない (つまり、そのスレッドが現在持っていない許可ケーパビリティを
+獲得することはできない)。
+.IP 4.
+新しい実効ケーパビリティセットは新しい許可ケーパビリティセットの 部分集合になっていなければならない。
+.SS "securebits フラグ: ケーパビリティだけの環境を構築する"
+.\" For some background:
+.\"       see http://lwn.net/Articles/280279/ and
+.\"       http://article.gmane.org/gmane.linux.kernel.lsm/5476/
+カーネル 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
+上記の "base" フラグの各々には対応する "locked" フラグが存在する。 いずれの "locked"
+フラグも一度セットされると戻すことはできず、 それ以降は対応する "base" フラグを変更することができなくなる。 "locked" フラグは
+\fBSECBIT_KEEP_CAPS_LOCKED\fP, \fBSECBIT_NO_SETUID_FIXUP_LOCKED\fP,
+\fBSECBIT_NOROOT_LOCKED\fP という名前である。
+.PP
+\fIsecurebits\fP フラグは、 \fBprctl\fP(2)  の操作 \fBPR_SET_SECUREBITS\fP や
+\fBPR_GET_SECUREBITS\fP を使うことで変更したり取得したりできる。 フラグを変更するには \fBCAP_SETPCAP\fP
+ケーパビリティが必要である。
+
+\fIsecurebits\fP フラグは子プロセスに継承される。 \fBexecve\fP(2) においては、
+\fBSECBIT_KEEP_CAPS\fP が常にクリアされる以外は、全てのフラグが保持される。
+
+アプリケーションは、以下の呼び出しを行うことにより、 自分自身および子孫となるプロセス全てに対して、
+必要なファイルケーパビリティを持ったプログラムを実行しない限り、 対応するケーパビリティを獲得できないような状況に閉じこめることができる。
+.in +4n
+.nf
+
+prctl(PR_SET_SECUREBITS,
+        SECBIT_KEEP_CAPS_LOCKED |
+        SECBIT_NO_SETUID_FIXUP |
+        SECBIT_NO_SETUID_FIXUP_LOCKED |
+        SECBIT_NOROOT |
+        SECBIT_NOROOT_LOCKED);
+.fi
+.in
+.SH 準拠
+.PP
+ケーパビリティに関する標準はないが、 Linux のケーパビリティは廃案になった POSIX.1e 草案に基づいて実装されている。
+\fIhttp://wt.xpilot.org/publications/posix.1e/\fP を参照。
+.SH 注意
+カーネル 2.5.27 以降、ケーパビリティは選択式のカーネルコンポーネント となっており、カーネル設定オプション
+CONFIG_SECURITY_CAPABILITIES により有効/無効を切り替えることができる。
+
+\fI/proc/PID/task/TID/status\fP ファイルを使うと、スレッドのケーパビリティセットを見ることができる。
+\fI/proc/PID/status\fP ファイルには、プロセスのメインスレッドのケーパビリティセットが表示される。
+
+\fIlibcap\fP パッケージは、ケーパビリティを設定・取得するための ルーチン群を提供している。これらのインタフェースは、 \fBcapset\fP(2)
+と \fBcapget\fP(2)  が提供するインターフェースと比べて、より使いやすく、変更される可能性が少ない。 このパッケージでは、
+\fBsetcap\fP(8), \fBgetcap\fP(8)  というプログラムも提供されている。 パッケージは以下で入手できる。
+.br
+\fIhttp://www.kernel.org/pub/linux/libs/security/linux\-privs\fP
+
+バージョン 2.6.24 より前、およびファイルケーパビリティが 有効になっていない2.6.24 以降のカーネルでは、 \fBCAP_SETPCAP\fP
+ケーパビリティを持ったスレッドは自分以外のスレッドの ケーパビリティを操作できる。 しかしながら、これは理論的に可能というだけである。
+以下のいずれかの場合においても、どのスレッドも \fBCAP_SETPCAP\fP ケーパビリティを持つことはないからである。
+.IP * 2
+2.6.25 より前の実装では、システム共通のケーパビリティ・バウンディングセット \fI/proc/sys/kernel/cap\-bound\fP
+ではこのケーパビリティは常に無効になっており、 ソースを変更してカーネルを再コンパイルしない限り、 これを変更することはできない。
+.IP *
+現在の実装ではファイルケーパビリティが無効になっている場合、 プロセス毎のバウンディングセットからこのケーパビリティを抜いて \fBinit\fP
+は開始され、 システム上で生成される他の全てのプロセスでこのバウンディングセットが 継承される。
+.SH 関連項目
+\fBcapget\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), \fBpthreads\fP(7), \fBgetcap\fP(8), \fBsetcap\fP(8)
+.PP
+カーネルソース内の \fIinclude/linux/capability.h\fP に
+各種のケーパビリティの目的についてのコメント
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。
index 962a319..6c5e1b4 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "POT-Creation-Date: 2012-05-28 07:16+0900\n"
-"PO-Revision-Date: 2012-05-28 12:59+0900\n"
+"PO-Revision-Date: 2012-05-31 07:37+0900\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: \n"
@@ -1181,47 +1181,47 @@ msgstr "B<CAP_NET_ADMIN>"
 #. type: Plain text
 #: build/C/man7/capabilities.7:180
 msgid "Perform various network-related operations:"
-msgstr ""
+msgstr "各種のネットワーク関係の操作を実行する:"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:184
 msgid "interface configuration;"
-msgstr ""
+msgstr "インターフェースの設定"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:186
 msgid "administration of IP firewall, masquerading, and accounting"
-msgstr ""
+msgstr "IP のファイアウォール、マスカレード、アカウンティング"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:188
 msgid "modify routing tables;"
-msgstr ""
+msgstr "ルーティングテーブルの変更"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:190
 msgid "bind to any address for transparent proxying;"
-msgstr ""
+msgstr "透過的プロキシでの任意のアドレスの割り当て (bind)"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:192
 msgid "set type-of-service (TOS)"
-msgstr ""
+msgstr "サービス種別 (type-of-service; TOS) のセット"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:194
 msgid "clear driver statistics;"
-msgstr ""
+msgstr "ドライバの統計情報のクリア"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:196
 msgid "set promiscuous mode;"
-msgstr ""
+msgstr "promiscuous モードをセットする"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:198
 msgid "enabling multicasting;"
-msgstr ""
+msgstr "マルチキャストを有効にする"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:209
@@ -1230,6 +1230,10 @@ msgid ""
 "B<SO_MARK>, B<SO_PRIORITY> (for a priority outside the range 0 to 6), "
 "B<SO_RCVBUFFORCE>, and B<SO_SNDBUFFORCE>."
 msgstr ""
+"B<setsockopt>(2) を使って以下のソケットオプションを設定する:\n"
+"B<SO_DEBUG>, B<SO_MARK>, \n"
+"B<SO_PRIORITY> (優先度を 0 から 6 以外に設定する場合),\n"
+"B<SO_RCVBUFFORCE>, and B<SO_SNDBUFFORCE>"
 
 #. type: TP
 #: build/C/man7/capabilities.7:211
@@ -1272,7 +1276,7 @@ msgstr "RAW ソケットと PACKET ソケットを使用する。"
 #. type: Plain text
 #: build/C/man7/capabilities.7:226
 msgid "bind to any address for transparent proxying."
-msgstr ""
+msgstr "透過的プロキシでの任意のアドレスの割り当て (bind)"
 
 #. type: TP
 #: build/C/man7/capabilities.7:229
@@ -1375,11 +1379,14 @@ msgid ""
 "perform privileged B<syslog>(2)  operations (since Linux 2.6.37, "
 "B<CAP_SYSLOG> should be used to permit such operations);"
 msgstr ""
+"特権が必要な B<syslog>(2) の操作を実行する\n"
+"(Linux 2.6.37 以降では、このような操作を許可するには\n"
+"B<CAP_SYSLOG> を使うべきである)"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:291
 msgid "perform B<VM86_REQUEST_IRQ> B<vm86>(2)  command;"
-msgstr ""
+msgstr "B<VM86_REQUEST_IRQ> B<vm86>(2) コマンドを実行する。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:297
@@ -1442,22 +1449,22 @@ msgstr ""
 #. type: Plain text
 #: build/C/man7/capabilities.7:336
 msgid "call B<perf_event_open>(2);"
-msgstr ""
+msgstr "B<perf_event_open>(2) を呼び出す。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:340
 msgid "access privileged I<perf> event information;"
-msgstr ""
+msgstr "特権が必要な I<perf> イベントの情報にアクセスする。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:343
 msgid "call B<setns>(2);"
-msgstr ""
+msgstr "B<setns>(2) を呼び出す。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:346
 msgid "call B<fanotify_init>(2);"
-msgstr ""
+msgstr "B<fanotify_init>(2) を呼び出す。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:353
@@ -1475,6 +1482,8 @@ msgid ""
 "employ the B<TIOCSTI> B<ioctl>(2)  to insert characters into the input queue "
 "of a terminal other than the caller's controlling terminal."
 msgstr ""
+"B<TIOCSTI> B<ioctl>(2) を使って、\n"
+"呼び出し元の制御端末以外の端末の入力キューに文字を挿入する。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:368
@@ -1687,17 +1696,17 @@ msgstr "B<RLIMIT_NPROC> リソース制限を上書きする。"
 #. type: Plain text
 #: build/C/man7/capabilities.7:489
 msgid "override maximum number of consoles on console allocation;"
-msgstr ""
+msgstr "コンソール割り当てにおいてコンソールの最大数を上書きする。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:491
 msgid "override maximum number of keymaps;"
-msgstr ""
+msgstr "キーマップの最大数を上書きする。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:493
 msgid "allow more than 64hz interrupts from the real-time clock;"
-msgstr ""
+msgstr "リアルタイムクロックから秒間 64 回を越える回数の割り当てが許可する。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:502
@@ -1715,6 +1724,8 @@ msgid ""
 "override the I</proc/sys/fs/pipe-size-max> limit when setting the capacity "
 "of a pipe using the B<F_SETPIPE_SZ> B<fcntl>(2)  command."
 msgstr ""
+"B<F_SETPIPE_SZ> B<fcntl>(2) を使ってパイプの容量を設定する際に\n"
+"上限 I</proc/sys/fs/pipe-size-max> を上書きする。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:514
@@ -1731,11 +1742,14 @@ msgid ""
 "override I</proc/sys/fs/mqueue/queues_max> limit when creating POSIX message "
 "queues (see B<mq_overview>(7));"
 msgstr ""
+"POSIX メッセージキューを作成する際に、\n"
+"上限 I</proc/sys/fs/mqueue/queues_max> を上書きする\n"
+"(B<mq_overview>(7) 参照)。"
 
 #. type: Plain text
 #: build/C/man7/capabilities.7:524
 msgid "employ B<prctl>(2)  B<PR_SET_MM> operation."
-msgstr ""
+msgstr "B<prctl>(2) の B<PR_SET_MM> 操作を使用する。"
 
 #. type: TP
 #: build/C/man7/capabilities.7:526
@@ -1764,6 +1778,8 @@ msgid ""
 "Use B<vhangup>(2); employ various privileged B<ioctl>(2)  operations on "
 "virtual terminals."
 msgstr ""
+"B<vhangup>(2) を使用する。\n"
+"特権が必要な仮想端末に関する各種の B<ioctl>(2) 操作を利用できる。"
 
 #. type: TP
 #: build/C/man7/capabilities.7:540
@@ -1777,6 +1793,8 @@ msgid ""
 "Perform privileged B<syslog>(2)  operations.  See B<syslog>(2)  for "
 "information on which operations require privilege."
 msgstr ""
+"特権が必要な B<syslog>(2) 操作を実行できる。\n"
+"どの操作が特権が必要かについての情報は B<syslog>(2) を参照。"
 
 #. type: TP
 #: build/C/man7/capabilities.7:548
@@ -1790,6 +1808,8 @@ msgid ""
 "Trigger something that will wake up the system (set B<CLOCK_REALTIME_ALARM> "
 "and B<CLOCK_BOOTTIME_ALARM> timers)."
 msgstr ""
+"システムを起こすトリガーを有効にする (タイマー B<CLOCK_REALTIME_ALARM>\n"
+"や B<CLOCK_BOOTTIME_ALARM> を設定する)。"
 
 #. type: SS
 #: build/C/man7/capabilities.7:556
index a47d344..e8874b8 100644 (file)
 .\"     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
 .\"
-.\" Japanese Version Copyright (c) 2005 Akihiro MOTOKI all rights reserved.
-.\" Translated 2005-03-09, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2005-11-04, Akihiro MOTOKI
-.\" Updated 2006-04-16, Akihiro MOTOKI, LDP v2.29
-.\" Updated 2006-07-20, Akihiro MOTOKI, LDP v2.34
-.\" Updated 2007-01-05, Akihiro MOTOKI, LDP v2.43
-.\" 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
+.\"*******************************************************************
 .\"
-.TH CAPABILITIES 7 2010-06-19 "Linux" "Linux Programmer's Manual"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH CAPABILITIES 7 2012\-04\-15 Linux "Linux Programmer's Manual"
 .SH 名前
 capabilities \- Linux のケーパビリティ (capability) の概要
 .SH 説明
-権限のチェックを行う観点から見ると、伝統的な UNIX の実装では
-プロセスは二つのカテゴリに分類できる:
-.I 特権
-プロセス (実効ユーザID が 0 のプロセス。ユーザID 0 は
-スーパーユーザや root と呼ばれる) と
-.I 非特権
-プロセス (実効ユーザID が 0 以外のプロセス) である。
-非特権プロセスでは、プロセスの資格情報 (通常は、実効UID 、実効GID
-と追加のグループリスト) に基づく権限チェックが行われるのに対し、
+権限のチェックを行う観点から見ると、伝統的な UNIX の実装では プロセスは二つのカテゴリに分類できる: \fI特権\fP プロセス (実効ユーザID が
+0 のプロセス。ユーザID 0 は スーパーユーザや root と呼ばれる) と \fI非特権\fP プロセス (実効ユーザID が 0 以外のプロセス)
+である。 非特権プロセスでは、プロセスの資格情報 (通常は、実効UID 、実効GID と追加のグループリスト) に基づく権限チェックが行われるのに対し、
 特権プロセスでは全てのカーネルの権限チェックがバイパスされる。
 
-バージョン 2.2 以降の Linux では、
-これまでスーパーユーザに結び付けられてきた権限を、
-いくつかのグループに分割している。これらのグループは
-.IR ケーパビリティ (capability)
-と呼ばれ、グループ毎に独立に有効、無効を設定できる。
-ケーパビリティはスレッド単位の属性である。
 .\"
+バージョン 2.2 以降の Linux では、 これまでスーパーユーザに結び付けられてきた権限を、 いくつかのグループに分割している。これらのグループは
+\fIケーパビリティ\fP(capability)  と呼ばれ、グループ毎に独立に有効、無効を設定できる。 ケーパビリティはスレッド単位の属性である。
 .SS ケーパビリティのリスト
-以下のリストは、
-Linux で実装されているケーパビリティと
-各ケーパビリティが許可する操作と動作をまとめたものである。
-.TP
-.BR CAP_AUDIT_CONTROL " (Linux 2.6.11 以降)"
-カーネル監査 (audit) の有効無効の切り替え、
-監査のフィルタ・ルールの変更、
-監査の状況やフィルタ・ルールの取得ができる。
-.TP
-.BR CAP_AUDIT_WRITE " (Linux 2.6.11 以降)"
+以下のリストは、 Linux で実装されているケーパビリティと 各ケーパビリティが許可する操作と動作をまとめたものである。
+.TP 
+\fBCAP_AUDIT_CONTROL\fP (Linux 2.6.11 以降)
+カーネル監査 (audit) の有効無効の切り替え、 監査のフィルタルールの変更、 監査の状況やフィルタルールの取得ができる。
+.TP 
+\fBCAP_AUDIT_WRITE\fP (Linux 2.6.11 以降)
 カーネル監査のログにレコードを書き込む。
-.TP
-.B CAP_CHOWN
-ファイルの UID とGID を任意に変更する
-.RB ( chown (2)
-参照)。
-.TP
-.B CAP_DAC_OVERRIDE
-ファイルの読み出し、書き込み、実行の権限チェックをバイパスする
-(DAC は "discretionary access control (任意のアクセス制御)" の略である)。
-.TP
-.B CAP_DAC_READ_SEARCH
-ファイルの読み出し権限のチェックとディレクトリの読み出しと実行
-の権限チェックをバイパスする。
-.TP
-.B CAP_FOWNER
+.TP 
+\fBCAP_CHOWN\fP
+ファイルの UID とGID を任意に変更する (\fBchown\fP(2)  参照)。
+.TP 
+\fBCAP_DAC_OVERRIDE\fP
+ファイルの読み出し、書き込み、実行の権限チェックをバイパスする (DAC は "discretionary access control
+(任意のアクセス制御)" の略である)。
+.TP 
+\fBCAP_DAC_READ_SEARCH\fP
+ファイルの読み出し権限のチェックとディレクトリの読み出しと実行 の権限チェックをバイパスする。
+.TP 
+\fBCAP_FOWNER\fP
 .PD 0
 .RS
 .IP * 2
-通常、プロセスのファイルシステム UID がファイルの UID に一致することが
-要求される操作 (例えば
-.BR chmod (2),
-.BR utime (2))
-における権限チェックをバイパスする。
-但し、
-.B CAP_DAC_OVERRIDE
-か
-.B CAP_DAC_READ_SEARCH
-によりチェックが行われる操作は除く。
-.IP *
-任意のファイルに対して拡張ファイル属性を設定する
-.RB ( chattr (1)
-参照)。
+通常、プロセスのファイルシステム 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 *
-.BR open (2)
-や
-.BR fcntl (2)
-で任意のファイルに対して
-.B O_NOATIME
-を指定する。
+\fBopen\fP(2)  や \fBfcntl\fP(2)  で任意のファイルに対して \fBO_NOATIME\fP を指定する。
 .RE
 .PD
-.TP
-.B CAP_FSETID
-ファイルが変更されたときに set-user-ID とset-group-ID の許可ビットをクリア
-しない。呼び出し元プロセスのファイルシステム GID と追加の GID のいずれとも
-GID が一致しないファイルに対して set-group-ID ビットを設定する。
-.TP
-.B CAP_IPC_LOCK
-メモリーのロック
-.RB ( mlock (2),
-.BR mlockall (2),
-.BR mmap (2),
-.BR shmctl (2))
-を行う。
-.TP
-.B CAP_IPC_OWNER
+.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
-.B CAP_KILL
-シグナルを送信する際に権限チェックをバイパスする
-.RB ( kill (2)
-参照)。これには
-.BR ioctl (2)
-の
-.B KDSIGACCEPT
-操作の使用も含まれる。
+.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
-.BR CAP_LEASE " (Linux 2.4 以降)"
-任意のファイルに対して
-ファイルリースを設定する
-.RB ( fcntl (2)
-参照)。
-.TP
-.B CAP_LINUX_IMMUTABLE
-拡張ファイル属性
-.B FS_APPEND_FL
-と
-.B FS_IMMUTABLE_FL
-を設定する
-.RB ( chattr (1)
-参照)。
-.\" これらの属性は ext2, ext3, Reiserfs, XFS, JFS で利用可能である。
-.TP
-.BR CAP_MAC_ADMIN " (Linux 2.6.25 以降)"
-強制アクセス制御 (MAC) を上書きする。
-Smack Linux Security Module (LSM) 用に実装されている。
-.TP
-.BR CAP_MAC_OVERRIDE " (Linux 2.6.25 以降)"
-MAC の設定や状態を変更する。
-Smack LSM 用に実装されている。
-.TP
-.BR CAP_MKNOD " (Linux 2.4 以降)"
-(Linux 2.4 以降)
-.BR mknod (2)
-を使用してスペシャル・ファイルを作成する。
-.TP
-.B CAP_NET_ADMIN
-各種のネットワーク関連の操作を実行する。
-(例えば、特権が必要なソケットオプションを設定する、マルチキャストを有効にする、
-インターフェースを設定する、ルーティングテーブルを変更するなど)
-.TP
-.B CAP_NET_BIND_SERVICE
-インターネットドメインの特権ポート (ポート番号が 1024 番未満)
-をバインドできる。
-.TP
-.B CAP_NET_BROADCAST
+シグナルを送信する際に権限チェックをバイパスする (\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
+拡張ファイル属性 \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
-.B CAP_NET_RAW
+.TP 
+\fBCAP_NET_RAW\fP
+.PD 0
+.RS
+.IP * 2
 RAW ソケットと PACKET ソケットを使用する。
-.\" また、各種の IP オプションと SO_BINDTODEVICE ソケットオプションを使用できる。
-.TP
-.B CAP_SETGID
-プロセスの GID と追加の GID リストに対する任意の操作を行う。
-UNIX ドメインソケット経由でソケットの資格情報 (credential) を渡す際に
-偽の GID を渡すことができる。
-.TP
-.BR CAP_SETFCAP " (Linux 2.6.24 以降)"
+.IP *
+透過的プロキシでの任意のアドレスの割り当て (bind)
+.RE
+.PD
+.\" Also various IP options and setsockopt(SO_BINDTODEVICE)
+.TP 
+\fBCAP_SETGID\fP
+プロセスの GID と追加の GID リストに対する任意の操作を行う。 UNIX ドメインソケット経由でソケットの資格情報 (credential)
+を渡す際に 偽の GID を渡すことができる。
+.TP 
+\fBCAP_SETFCAP\fP (Linux 2.6.24 以降)
 ファイルケーパビリティを設定する。
-.TP
-.B CAP_SETPCAP
-ファイルケーパビリティがサポートされていない場合:
-呼び出し元が許可されているケーパビリティセットに含まれる任意のケーパビリティを、
-他のプロセスに付与したり、削除したりできる。
-(カーネルがファイルケーパビリティをサポートしている場合、
-.B CAP_SETPCAP
-はこの役割を持たない。
-なぜなら、ファイルケーパビリティをサポートしているカーネルでは
-.B CAP_SETPCAP
-は全く別の意味を持つからである。)
+.TP 
+\fBCAP_SETPCAP\fP
+ファイルケーパビリティがサポートされていない場合: 呼び出し元が許可されているケーパビリティセットに含まれる任意のケーパビリティを、
+他のプロセスに付与したり、削除したりできる。 (カーネルがファイルケーパビリティをサポートしている場合、 \fBCAP_SETPCAP\fP
+はこの役割を持たない。 なぜなら、ファイルケーパビリティをサポートしているカーネルでは \fBCAP_SETPCAP\fP は全く別の意味を持つからである。)
 
-ファイルケーパビリティがサポートされている場合:
-呼び出し元スレッドのバウンディングセットの任意のケーパビリティを
-自身の継承可能ケーパビリティセットに追加できる。
-.RB ( prctl (2)
-.BR PR_CAPBSET_DROP
-を使って)
-バウンディングセットからケーパビリティを削除できる。
-.I securebits
-フラグを変更できる。
-.TP
-.B CAP_SETUID
-プロセスの 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
+を渡すことができる。
+.TP 
+\fBCAP_SYS_ADMIN\fP
 .PD 0
 .RS
 .IP * 2
-以下のシステム管理用の操作を実行する:
-.BR quotactl (2),
-.BR mount (2),
-.BR umount (2),
-.BR swapon (2),
-.BR swapoff (2),
-.BR sethostname (2),
-.BR setdomainname (2).
-.IP *
-任意の System V IPC オブジェクトに対する
-.B IPC_SET
-と
-.B IPC_RMID
-操作を実行する。
-.IP *
-拡張属性
-.I trusted
-と
-.I security
-に対する操作を実行する
-.RB ( attr (5)
-参照)。
-.IP *
-.BR lookup_dcookie (2)
-を呼び出す。
-.IP *
-.BR ioprio_set (2)
-を使って I/O スケジューリングクラス
-.BR IOPRIO_CLASS_RT ,
-.B IOPRIO_CLASS_IDLE
-を割り当てる
-.RB ( IOPRIO_CLASS_IDLE
-は Linux 2.6.25 より前のバージョンのみ)。
+以下のシステム管理用の操作を実行する: \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 *
+拡張属性 \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 *
 ソケットの資格情報 (credential) を渡す際に偽の UID を渡す。
 .IP *
-ファイルをオープンするシステムコール (例えば
-.BR accept (2),
-.BR execve (2),
-.BR open (2),
-.BR pipe (2))
-でシステム全体でオープンできるファイル数の上限
-.I /proc/sys/fs/file-max
-を超過する。
-.IP *
-.BR clone (2)
-と
-.BR unshare (2)
-で
-.B CLONE_NEWNS
+ファイルをオープンするシステムコール (例えば \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
 フラグを利用する。
 .IP *
-.BR keyctl (2)
-の
-.B KEYCTL_CHOWN
-と
-.B KEYCTL_SETPERM
-操作を実行する。
-.IP *
-.BR madvise (2)
-の
-.B MADV_HWPOISON
-操作を実行する。
+\fBperf_event_open\fP(2) を呼び出す。
+.IP *
+特権が必要な \fIperf\fP イベントの情報にアクセスする。
+.IP *
+\fBsetns\fP(2) を呼び出す。
+.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
-.BR reboot (2)
-と
-.BR kexec_load (2)
-を呼び出す。
-.TP
-.B CAP_SYS_CHROOT
-.BR chroot (2).
-を呼び出す。
-.TP
-.B CAP_SYS_MODULE
-カーネルモジュールのロード、アンロードを行う
-.RB ( init_module (2)
-と
-.BR delete_module (2)
-を参照のこと)。
-バージョン 2.6.25 より前のカーネルで、
-システム全体のケーパビリティバウンディングセット (capability bounding set)
+.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
-.B CAP_SYS_NICE
+.TP 
+\fBCAP_SYS_NICE\fP
 .PD 0
 .RS
 .IP * 2
-プロセスの nice 値の引き上げ
-.RB ( nice (2),
-.BR setpriority (2))
-や、任意のプロセスの nice 値の変更を行う。
+プロセスの nice 値の引き上げ (\fBnice\fP(2), \fBsetpriority\fP(2))  や、任意のプロセスの nice 値の変更を行う。
 .IP *
-呼び出し元プロセスに対するリアルタイム・スケジューリングポリシーと、
-任意のプロセスに対するスケジューリングポリシーと優先度を設定する
-.RB ( sched_setscheduler (2),
-.BR sched_setparam (2))。
+呼び出し元プロセスに対するリアルタイムスケジューリングポリシーと、 任意のプロセスに対するスケジューリングポリシーと優先度を設定する
+(\fBsched_setscheduler\fP(2), \fBsched_setparam\fP(2))。
 .IP *
-任意のプロセスに対する CPU affinity を設定できる
-.RB ( sched_setaffinity (2))。
+任意のプロセスに対する CPU affinity を設定できる (\fBsched_setaffinity\fP(2))。
 .IP *
-任意のプロセスに対して I/O スケジューリングクラスと優先度を設定できる
-.RB ( ioprio_set (2))。
+任意のプロセスに対して I/O スケジューリングクラスと優先度を設定できる (\fBioprio_set\fP(2))。
 .IP *
-.BR migrate_pages (2)
-を任意のプロセスに適用し、プロセスを任意のノードに移動する。
 .\" 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);
+\fBmigrate_pages\fP(2)  を任意のプロセスに適用し、プロセスを任意のノードに移動する。
 .IP *
-.BR move_pages (2)
-を任意のプロセスに対して行う。
+\fBmove_pages\fP(2)  を任意のプロセスに対して行う。
 .IP *
-.BR mbind (2)
-と
-.BR move_pages (2)
-で
-.B MPOL_MF_MOVE_ALL
-フラグを使用する。
+\fBmbind\fP(2)  と \fBmove_pages\fP(2)  で \fBMPOL_MF_MOVE_ALL\fP フラグを使用する。
 .RE
 .PD
-.TP
-.B CAP_SYS_PACCT
-.BR acct (2)
-を呼び出す。
-.TP
-.B CAP_SYS_PTRACE
-.BR ptrace (2)
-を使って任意のプロセスをトレースする。
-任意のプロセスに
-.BR get_robust_list (2)
-を適用する。
-.TP
-.B CAP_SYS_RAWIO
-I/O ポート操作を実行する
-.RB ( iopl (2)
-、
-.BR ioperm (2))。
-.I /proc/kcore
-にアクセスできる。
-.TP
-.B CAP_SYS_RESOURCE
+.TP 
+\fBCAP_SYS_PACCT\fP
+\fBacct\fP(2)  を呼び出す。
+.TP 
+\fBCAP_SYS_PTRACE\fP
+\fBptrace\fP(2)  を使って任意のプロセスをトレースする。 任意のプロセスに \fBget_robust_list\fP(2)  を適用する。
+.TP 
+\fBCAP_SYS_RAWIO\fP
+I/O ポート操作を実行する (\fBiopl\fP(2)、 \fBioperm\fP(2))。
+\fI/proc/kcore\fP にアクセスする。
+\fBFIBMAP\fP \fBioctl\fP(2) 操作を使用する。
+.TP 
+\fBCAP_SYS_RESOURCE\fP
 .PD 0
 .RS
 .IP * 2
 ext2 ファイルシステム上の予約されている領域を使用する。
 .IP *
-ext3 のジャーナル機能を制御する
-.BR ioctl (2)
-を使用する。
+ext3 のジャーナル機能を制御する \fBioctl\fP(2)  を使用する。
 .IP *
 ディスク quota の上限を上書きする。
 .IP *
-リソース上限を増やす
-.RB ( setrlimit (2))。
-.IP *
-.B RLIMIT_NPROC
-リソース制限を上書きする。
-.IP *
-メッセージキューに関する上限
-.I msg_qbytes
-を
-.I /proc/sys/kernel/msgmnb
-に指定されている上限よりも大きく設定する
-.RB ( msgop (2)
-と
-.BR msgctl (2)
-参照)。
-.IP *
-.I /proc/sys/fs/pipe-max-size
-に指定されている上限を超えてパイプの容量を増やすのに
-.B F_SETPIPE_SZ
-を使用する。
+リソース上限を増やす (\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 操作を使用する。
 .RE
 .PD
-.TP
-.B CAP_SYS_TIME
-システムクロックを変更する
-.RB ( settimeofday (2),
-.BR stime (2),
-.BR adjtimex (2))。
-リアルタイム (ハードウェア) クロックを変更する。
-.TP
-.B CAP_SYS_TTY_CONFIG
-.BR vhangup (2)
-を呼び出す。
+.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 以降)
+特権が必要な \fBsyslog\fP(2) 操作を実行できる。
+どの操作が特権が必要かについての情報は \fBsyslog\fP(2) を参照。
+.TP 
+\fBCAP_WAKE_ALARM\fP (Linux 3.0 以降)
 .\"
+システムを起こすトリガーを有効にする (タイマー \fBCLOCK_REALTIME_ALARM\fP
+や \fBCLOCK_BOOTTIME_ALARM\fP を設定する)。
 .SS 過去と現在の実装
 完全な形のケーパビリティを実装するには、以下の要件を満たす必要がある:
 .IP 1. 3
-全ての特権操作について、カーネルはそのスレッドの実効ケーパビリティセットに
-必要なケーパビリティがあるかを確認する。
+全ての特権操作について、カーネルはそのスレッドの実効ケーパビリティセットに 必要なケーパビリティがあるかを確認する。
 .IP 2.
-カーネルで、あるスレッドのケーパビリティセットを変更したり、
-取得したりできるシステムコールが提供される。
+カーネルで、あるスレッドのケーパビリティセットを変更したり、 取得したりできるシステムコールが提供される。
 .IP 3.
-ファイルシステムが、実行可能ファイルにケーパビリティを付与でき、ファイル
-実行時にそのケーパビリティをプロセスが取得できるような機能をサポートする。
+ファイルシステムが、実行可能ファイルにケーパビリティを付与でき、ファイル 実行時にそのケーパビリティをプロセスが取得できるような機能をサポートする。
 .PP
-カーネル 2.6.24 より前では、最初の 2つの要件のみが満たされている。
-カーネル 2.6.24 以降では、3つの要件すべてが満たされている。
 .\"
+カーネル 2.6.24 より前では、最初の 2つの要件のみが満たされている。 カーネル 2.6.24 以降では、3つの要件すべてが満たされている。
 .SS スレッドケーパビリティセット
-各スレッドは以下の 3種類のケーパビリティセットを持つ。各々のケーパビリティセットは
-上記のケーパビリティの組み合わせである (全てのケーパビリティが無効でもよい)。
-.TP
-.IR "許可 (permitted)" :
-そのスレッドが持つことになっている実効ケーパビリティの
-限定的なスーパーセットである。
-これは、実効ケーパビリティセットに
-.B CAP_SETPCAP
-ケーパビリティを持っていないスレッドが継承可能ケーパビリティセットに
-追加可能なケーパビリティの限定的なスーパーセットでもある。
+各スレッドは以下の 3種類のケーパビリティセットを持つ。各々のケーパビリティセットは 上記のケーパビリティの組み合わせである
+(全てのケーパビリティが無効でもよい)。
+.TP 
+\fI許可 (permitted)\fP:
+そのスレッドが持つことになっている実効ケーパビリティの 限定的なスーパーセットである。 これは、実効ケーパビリティセットに \fBCAP_SETPCAP\fP
+ケーパビリティを持っていないスレッドが継承可能ケーパビリティセットに 追加可能なケーパビリティの限定的なスーパーセットでもある。
 
-許可ケーパビリティセットから削除してしまったケーパビリティは、
-(set-user-ID-root プログラムか、
-そのケーパビリティをファイルケーパビリティで許可しているプログラムを
-.BR execve (2)
-しない限りは) もう一度獲得することはできない。
-.TP
-.IR "継承可能 (inheritable)" :
-.BR execve (2)
-を前後で保持されるケーパビリティセットである。
-この仕組みを使うことで、あるプロセスが
-.BR execve (2)
-を行う際に新しいプログラムの許可ケーパビリティセットとして
-割り当てるケーパビリティを指定することができる。
-.TP
-.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
-.BR fork (2)
-で作成される子プロセスは、親のケーパビリティセットのコピーを継承する。
-.BR execve (2)
+\fBfork\fP(2)  で作成される子プロセスは、親のケーパビリティセットのコピーを継承する。 \fBexecve\fP(2)
 中のケーパビリティの扱いについては下記を参照のこと。
 .PP
-.BR capset (2)
-を使うと、プロセスは自分自身のケーパビリティセット
-を操作することができる (下記参照)。
 .\"
+\fBcapset\fP(2)  を使うと、プロセスは自分自身のケーパビリティセット を操作することができる (下記参照)。
 .SS ファイルケーパビリティ
-カーネル 2.6.24 以降では、
-.BR setcap (8)
-を使って実行ファイルにケーパビリティセットを対応付けることができる。
-ファイルケーパビリティセットは
-.I "security.capability"
-という名前の拡張属性に保存される
-.RB ( setxattr (2)
-参照)。この拡張属性への書き込みには
-.B CAP_SETFCAP
-ケーパビリティが必要である。
-ファイルケーパビリティセットとスレッドのケーパビリティセットの両方が
-考慮され、
-.BR execve (2)
+カーネル 2.6.24 以降では、 \fBsetcap\fP(8)  を使って実行ファイルにケーパビリティセットを対応付けることができる。
+ファイルケーパビリティセットは \fIsecurity.capability\fP という名前の拡張属性に保存される (\fBsetxattr\fP(2)
+参照)。この拡張属性への書き込みには \fBCAP_SETFCAP\fP ケーパビリティが必要である。
+ファイルケーパビリティセットとスレッドのケーパビリティセットの両方が 考慮され、 \fBexecve\fP(2)
 後のスレッドのケーパビリティセットが決定される。
 
 3 つのファイルケーパビリティセットが定義されている。
-.TP
-.IR "許可 (Permitted)" " (以前の" "強制 (Forced)" "):"
-スレッドの継承可能ケーパビリティに関わらず、そのスレッドに自動的に
-認められるケーパビリティ。
-.TP
-.IR "継承可能 (Inheritable)" " (以前の " "許容 (Allowed)" "):"
-このセットと、スレッドの継承可能ケーパビリティセットとの
-論理積 (AND) がとられ、
-.BR execve (2)
-の後にそのスレッドの許可ケーパビリティセットで有効となる
-継承可能ケーパビリティが決定される。
-.TP
-.IR "実効 (Effective)" :
-これは集合ではなく、1 ビットの情報である。
-このビットがセットされていると、
-.BR execve (2)
-実行中に、そのスレッドの新しい許可ケーパビリティが全て
-実効ケーパビリティ集合においてもセットされる。
-このビットがセットされていない場合、
-.BR execve (2)
-後には新しい許可ケーパビリティのどれも新しい実効ケーパビリティ集合
-にセットされない。
+.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)  後には新しい許可ケーパビリティのどれも新しい実効ケーパビリティ集合 にセットされない。
 
-ファイルの実効ケーパビリティビットを有効にするというのは、
-.BR execve (2)
-実行時に、ファイルの許可ケーパビリティと継承ケーパビリティに対応するものが
-スレッドの許可ケーパビリティセットとしてセットされるが、
-これが実効ケーパビリティセットにもセットされるということである
-(ケーパビリティの変換ルールは下記参照)。
-したがって、ファイルにケーパビリティを割り当てる際
-.RB ( setcap (8),
-.BR cap_set_file (3),
-.BR cap_set_fd (3))、
-いずれかのケーパビリティに対して実効フラグを有効と指定する場合、
-許可フラグや継承可能フラグを有効にした他の全てのケーパビリティ
-についても実効フラグを有効と指定しなければならない。
 .\"
+ファイルの実効ケーパビリティビットを有効にするというのは、 \fBexecve\fP(2)
+実行時に、ファイルの許可ケーパビリティと継承ケーパビリティに対応するものが スレッドの許可ケーパビリティセットとしてセットされるが、
+これが実効ケーパビリティセットにもセットされるということである (ケーパビリティの変換ルールは下記参照)。
+したがって、ファイルにケーパビリティを割り当てる際 (\fBsetcap\fP(8), \fBcap_set_file\fP(3),
+\fBcap_set_fd\fP(3))、 いずれかのケーパビリティに対して実効フラグを有効と指定する場合、
+許可フラグや継承可能フラグを有効にした他の全てのケーパビリティ についても実効フラグを有効と指定しなければならない。
 .SS "execve() 中のケーパビリティの変換"
 .PP
-.BR execve (2)
-実行時に、カーネルはプロセスの新しいケーパビリティを次の
-アルゴリズムを用いて計算する:
+\fBexecve\fP(2)  実行時に、カーネルはプロセスの新しいケーパビリティを次の アルゴリズムを用いて計算する:
 .in +4n
 .nf
 
@@ -569,11 +442,9 @@ P'(inheritable) = P(inheritable)    [つまり、変更されない]
 各変数の意味は以下の通り:
 .RS 4
 .IP P 10
-.BR execve (2)
-前のスレッドのケーパビリティセットの値
+\fBexecve\fP(2)  前のスレッドのケーパビリティセットの値
 .IP P'
-.BR execve (2)
-後のスレッドのケーパビリティセットの値
+\fBexecve\fP(2)  後のスレッドのケーパビリティセットの値
 .IP F
 ファイルケーパビリティセットの値
 .IP cap_bset
@@ -581,301 +452,161 @@ P'(inheritable) = P(inheritable)    [つまり、変更されない]
 .RE
 .\"
 .SS ケーパビリティと、ルートによるプログラムの実行
-.BR execve (2)
-時に、ケーパビリティセットを使って、全ての権限を持った
-.I root
-を実現するには、以下のようにする。
+\fBexecve\fP(2)  時に、ケーパビリティセットを使って、全ての権限を持った \fIroot\fP を実現するには、以下のようにする。
 .IP 1. 3
-set-user-ID-root プログラムが実行される場合、
-またはプロセスの実ユーザ ID が 0 (root) の場合、
-ファイルの継承可能セットと許可セットを全て 1
-(全てのケーパビリティが有効) に定義する。
+set\-user\-ID\-root プログラムが実行される場合、 またはプロセスの実ユーザ ID が 0 (root) の場合、
+ファイルの継承可能セットと許可セットを全て 1 (全てのケーパビリティが有効) に定義する。
 .IP 2.
-set-user-ID-root プログラムが実行される場合、
-ファイルの実効ケーパビリティビットを 1 (enabled) に定義する。
+set\-user\-ID\-root プログラムが実行される場合、 ファイルの実効ケーパビリティビットを 1 (enabled) に定義する。
 .PP
-上記のルールにケーパビリティ変換を適用した結果をまとめると、
-プロセスが set-user-ID-root プログラムを
-.BR execve (2)
-する場合、または実効 UID が 0 のプロセスがプログラムを
-.BR execve (2)
-する場合、許可と実効のケーパビリティセットの全ケーパビリティ
-(正確には、ケーパビリティバウンディングセットによるマスクで除外されるもの
-以外の全てのケーパビリティ) を取得するということである。
-.\" 実 UID が 0 で実効 UID が 0 以外のプロセスが exec () を行うと、
-.\" 許可ケーパビリティセットに含まれる全てのケーパビリティ
-.\" が取得され、実効ケーパビリティは取得されない。
+.\" 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) は、
-.BR execve (2)
-時に獲得できるケーパビリティを制限するために使われる
-セキュリティ機構である。
-バウンディングセットは以下のように使用される。
+ケーパビリティ・バウンディングセット (capability bounding set) は、 \fBexecve\fP(2)
+時に獲得できるケーパビリティを制限するために使われる セキュリティ機構である。 バウンディングセットは以下のように使用される。
 .IP * 2
-.BR execve (2)
-実行時に、ケーパビリティ・バウンディングセットと
-ファイルの許可ケーパビリティセットの論理和 (AND) を取ったものが、
-そのスレッドの許可ケーパビリティセットに割り当てられる。
-つまり、ケーパビリティ・バウンディングセットは、
-実行ファイルが認めている許可ケーパビリティに対して
-制限を課す働きをする。
-.IP *
-(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
-バウンディングセットがマスクを行うのは、継承可能ケーパビリティではなく、
-ファイルの許可ケーパビリティのマスクを行う点に注意すること。
-あるスレッドの継承可能セットにそのスレッドのバウンディングセットに
-存在しないケーパビリティが含まれている場合、そのスレッドは、
-継承可能セットに含まれるケーパビリティを持つファイルを実行することにより、
-許可セットに含まれるケーパビリティも獲得できるということである。
+バウンディングセットがマスクを行うのは、継承可能ケーパビリティではなく、 ファイルの許可ケーパビリティのマスクを行う点に注意すること。
+あるスレッドの継承可能セットにそのスレッドのバウンディングセットに 存在しないケーパビリティが含まれている場合、そのスレッドは、
+継承可能セットに含まれるケーパビリティを持つファイルを実行することにより、 許可セットに含まれるケーパビリティも獲得できるということである。
 .PP
-カーネルのバージョンにより、ケーパビリティ・バウンディングセットは
-システム共通の属性の場合と、プロセス単位の属性の場合がある。
+カーネルのバージョンにより、ケーパビリティ・バウンディングセットは システム共通の属性の場合と、プロセス単位の属性の場合がある。
 .PP
-.B "Linux 2.6.25 より前のケーパビリティ・バウンディングセット"
+\fBLinux 2.6.25 より前のケーパビリティ・バウンディングセット\fP
 .PP
-2.6.25 より前のカーネルでは、ケーパビリティ・バウンディングセットは
-システム共通の属性で、システム上の全てのスレッドに適用される。
-バウンディングセットは
-.I /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 では符号付きの十進数で表現される。)
 
-.B init
-プロセスだけがケーパビリティ・バウンディングセットで
-ケーパビリティをセットすることができる。
-それ以外では、スーパーユーザ (より正確には、
-.B CAP_SYS_MODULE
-ケーパビリティを持ったプログラム) が、
-ケーパビリティ・バウンディングセットのケーパビリティのクリアが
-できるだけである。
+\fBinit\fP プロセスだけがケーパビリティ・バウンディングセットで ケーパビリティをセットすることができる。 それ以外では、スーパーユーザ
+(より正確には、 \fBCAP_SYS_MODULE\fP ケーパビリティを持ったプログラム) が、
+ケーパビリティ・バウンディングセットのケーパビリティのクリアが できるだけである。
 
-通常のシステムでは、ケーパビリティ・バウンディングセットは、
-.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
 の定義を修正し、カーネルを再構築する必要がある。
 
-システム共通のケーパビリティ・バウンディングセット機能は、
-カーネル 2.2.11 以降で Linux に追加された。
 .\"
+システム共通のケーパビリティ・バウンディングセット機能は、 カーネル 2.2.11 以降で Linux に追加された。
 .PP
-.B "Linux 2.6.25 以降のケーパビリティ・バウンディングセット"
+\fBLinux 2.6.25 以降のケーパビリティ・バウンディングセット\fP
 .PP
-Linux 2.6.25 以降では、
-「ケーパビリティ・バウンディングセット」はスレッド単位の属性である
+Linux 2.6.25 以降では、 「ケーパビリティ・バウンディングセット」はスレッド単位の属性である
 (システム共通のケーパビリティ・バウンディングセットはもはや存在しない)。
 
-バウンディングセットは
-.BR fork (2)
-時にはスレッドの親プロセスから継承され、
-.BR execve (2)
-の前後では保持される。
+バウンディングセットは \fBfork\fP(2)  時にはスレッドの親プロセスから継承され、 \fBexecve\fP(2)  の前後では保持される。
 
-スレッドが
-.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 操作を使うことで、スレッドがあるケーパビリティが自身のバウンディングセット
 に含まれているかを知ることができる。
 
 バウンディングセットからのケーパビリティの削除がサポートされるのは、
 カーネルのコンパイル時にファイルケーパビリティが有効になっている場合
-(CONFIG_SECURITY_FILE_CAPABILITIES) だけである。
-この場合には、 (全てのプロセスの先祖である) 
-.I init
-プロセスはバウンディングセットで全てのケーパビリティが
-セットされた状態で開始する。
-ファイルケーパビリティが有効になっていない場合には、
-.I init
-はバウンディングセットで
-.B CAP_SETPCAP
-以外の全てのケーパビリティがセットされた状態で開始する。
-このようになっているのは、
-.B CAP_SETPCAP
-ケーパビリティがファイルケーパビリティがサポートされていない場合には
-違った意味を持つからである。
+だけである。Linux 2.6.33 より前のカーネルでは、ファイルケーパビリティは
+設定オプション CONFIG_SECURITY_FILE_CAPABILITIES で切り替えられる追加の
+機能であった。Linux 2.6.33 以降では、この設定オプションは削除され、
+ファイルケーパビリティは常にカーネルに組込まれるようになった。
+ファイルケーパビリティがカーネルにコンパイル時に組み込まれている場合、
+(全てのプロセスの先祖である) \fIinit\fP プロセスはバウンディングセットで
+全てのケーパビリティが セットされた状態で開始する。ファイルケーパビリティ
+が有効になっていない場合には、 \fIinit\fP はバウンディングセットで
+\fBCAP_SETPCAP\fP 以外の全てのケーパビリティがセットされた状態で開始する。
+このようになっているのは、 \fBCAP_SETPCAP\fP ケーパビリティがファイルケー
+パビリティがサポートされていない場合には 違った意味を持つからである。
 
-バウンディングセットからケーパビリティを削除しても、
-スレッドの継承可能セットからはそのケーパビリティは削除されない。
-しかしながら、バウンディングセットからの削除により、
-この先そのケーパビリティをスレッドの継承可能セットに追加すること
-はできなくなる。
 .\"
 .\"
+バウンディングセットからケーパビリティを削除しても、 スレッドの継承可能セットからはそのケーパビリティは削除されない。
+しかしながら、バウンディングセットからの削除により、 この先そのケーパビリティをスレッドの継承可能セットに追加すること はできなくなる。
 .SS "ユーザ ID 変更のケーパビリティへの影響"
-ユーザ ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、
-スレッドの実 UID、実効 UID、保存 set-user-ID、ファイルシステム UID が
-.RB ( setuid (2),
-.BR setresuid (2)
-などを使って) 変更された際に、カーネルはそのスレッドのケーパビリティセットに
-以下の変更を行う:
+ユーザ ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、 スレッドの実 UID、実効 UID、保存
+set\-user\-ID、ファイルシステム UID が (\fBsetuid\fP(2), \fBsetresuid\fP(2)  などを使って)
+変更された際に、カーネルはそのスレッドのケーパビリティセットに 以下の変更を行う:
 .IP 1. 3
-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.
-実効 UID が 0 から 0 以外に変更された場合、
-実効ケーパビリティセットの全ケーパビリティをクリアする。
+実効 UID が 0 から 0 以外に変更された場合、 実効ケーパビリティセットの全ケーパビリティをクリアする。
 .IP 3.
-実効 UID が 0 以外から 0 に変更された場合、
-許可ケーパビリティセットの内容を実効ケーパビリティセットにコピーする。
+実効 UID が 0 以外から 0 に変更された場合、 許可ケーパビリティセットの内容を実効ケーパビリティセットにコピーする。
 .IP 4.
-ファイルシステム 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 以降)。
-ファイルシステム 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.2.30 以降), \fBCAP_MAC_OVERRIDE\fP, \fBCAP_MKNOD\fP (Linux 2.2.30 以降)。
+ファイルシステム UID が 0 以外から 0 に変更された場合、 上記のケーパビリティのうち許可ケーパビリティセットで有効になっているものが
 実効ケーパビリティセットで有効にされる。
 .PP
-各種 UID のうち少なくとも一つが 0 であるスレッドが、
-その UID の全てが 0 以外になったときに許可ケーパビリティセットが
-クリアされないようにしたい場合には、
-.BR prctl (2)
-の
-.B PR_SET_KEEPCAPS
-操作を使えばよい。
 .\"
+各種 UID のうち少なくとも一つが 0 であるスレッドが、 その UID の全てが 0 以外になったときに許可ケーパビリティセットが
+クリアされないようにしたい場合には、 \fBprctl\fP(2)  の \fBPR_SET_KEEPCAPS\fP 操作を使えばよい。
 .SS プログラムでケーパビリティセットを調整する
-各スレッドは、
-.BR capget (2)
-や
-.BR capset (2)
-を使って、自身のケーパビリティセットを取得したり変更したりできる。
-ただし、これを行うには、
-.I libcap
-パッケージで提供されている
-.BR cap_get_proc (3)
-や
-.BR cap_set_proc (3)
-を使うのが望ましい。
-スレッドのケーパビリティセットの変更には以下のルールが適用される。
+各スレッドは、 \fBcapget\fP(2)  や \fBcapset\fP(2)  を使って、自身のケーパビリティセットを取得したり変更したりできる。
+ただし、これを行うには、 \fIlibcap\fP パッケージで提供されている \fBcap_get_proc\fP(3)  や
+\fBcap_set_proc\fP(3)  を使うのが望ましい。 スレッドのケーパビリティセットの変更には以下のルールが適用される。
 .IP 1. 3
-呼び出し側が
-.B CAP_SETPCAP
-ケーパビリティを持っていない場合、新しい継承可能セットは、
-既存の継承可能セットと許可セットの積集合 (AND) の部分集合で
-なければならない。
+呼び出し側が \fBCAP_SETPCAP\fP ケーパビリティを持っていない場合、新しい継承可能セットは、 既存の継承可能セットと許可セットの積集合
+(AND) の部分集合で なければならない。
 .IP 2.
-(カーネル 2.6.25 以降)
-新しい継承可能セットは、既存の継承可能セットとケーパビリティ・
-バウンディングセットの積集合 (AND) の部分集合でなければならない。
+(カーネル 2.6.25 以降)  新しい継承可能セットは、既存の継承可能セットとケーパビリティ・ バウンディングセットの積集合 (AND)
+の部分集合でなければならない。
 .IP 3.
-新しい許可セットは、既存の許可セットの部分集合でなければならない
-(つまり、そのスレッドが現在持っていない許可ケーパビリティを
+新しい許可セットは、既存の許可セットの部分集合でなければならない (つまり、そのスレッドが現在持っていない許可ケーパビリティを
 獲得することはできない)。
 .IP 4.
-新しい実効ケーパビリティセットは新しい許可ケーパビリティセットの
-部分集合になっていなければならない。
-.SS securebits フラグ: ケーパビリティだけの環境を構築する
+新しい実効ケーパビリティセットは新しい許可ケーパビリティセットの 部分集合になっていなければならない。
+.SS "securebits フラグ: ケーパビリティだけの環境を構築する"
 .\" For some background:
 .\"       see http://lwn.net/Articles/280279/ and
 .\"       http://article.gmane.org/gmane.linux.kernel.lsm/5476/
-カーネル 2.6.26 以降で、
-ファイルケーパビリティが有効になったカーネルでは、
-スレッド単位の
-.I securebits
-フラグが実装されており、このフラグを使うと UID 0
-.RI ( root )
-に対するケーパビリティの特別扱いを無効することができる。
+カーネル 2.6.26 以降で、 ファイルケーパビリティが有効になったカーネルでは、 スレッド単位の \fIsecurebits\fP
+フラグが実装されており、このフラグを使うと UID 0 (\fIroot\fP)  に対するケーパビリティの特別扱いを無効することができる。
 以下のようなフラグがある。
-.TP
-.B SECBIT_KEEP_CAPS
+.TP 
+\fBSECBIT_KEEP_CAPS\fP
 このフラグをセットされている場合、UID が 0 のスレッドの UID が 0 以外の値に
-切り替わる際に、そのスレッドはケーパビリティを維持することができる。
-このフラグがセットされていない場合には、UID が 0 から 0 以外の値に
-切り替わると、そのスレッドは全てのケーパビリティを失う。
-このフラグは
-.BR execve (2)
-時には全てクリアされる
-(このフラグは、以前の
-.BR prctl (2)
-の
-.B PR_SET_KEEPCAPS
-操作と同じ機能を提供するものである)。
-.TP
-.B SECBIT_NO_SETUID_FIXUP
-このフラグをセットすると、スレッドの実効 UID とファイルシステム UID が
-0 と 0 以外の間で切り替わった場合に、
-カーネルはケーパビリティセットの調整を行わなくなる
-(「ユーザ ID 変更のケーパビリティへの影響」の節を参照)。
-.TP
-.B SECBIT_NOROOT
-このビットがセットされている場合、
-set-user-ID-root プログラムの実行時や、
-実効 UID か 実 UID が 0 のプロセスが
-.BR execve (2)
-を呼び出した時に、カーネルはケーパビリティを許可しない
-(「ケーパビリティと、ルートによるプログラムの実行」の節を参照)。
+切り替わる際に、そのスレッドはケーパビリティを維持することができる。 このフラグがセットされていない場合には、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
-上記の "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
-.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
 ケーパビリティが必要である。
 
-.I securebits
-フラグは子プロセスに継承される。
-.BR execve (2)
-においては、
-.B SECURE_KEEP_CAPS
-が常にクリアされる以外は、全てのフラグが保持される。
+\fIsecurebits\fP フラグは子プロセスに継承される。 \fBexecve\fP(2) においては、
+\fBSECBIT_KEEP_CAPS\fP が常にクリアされる以外は、全てのフラグが保持される。
 
-アプリケーションは、以下の呼び出しを行うことにより、
-自分自身および子孫となるプロセス全てに対して、
-必要なファイルケーパビリティを持ったプログラムを実行しない限り、
-対応するケーパビリティを獲得できないような状況に閉じこめることができる。
+アプリケーションは、以下の呼び出しを行うことにより、 自分自身および子孫となるプロセス全てに対して、
+必要なファイルケーパビリティを持ったプログラムを実行しない限り、 対応するケーパビリティを獲得できないような状況に閉じこめることができる。
 .in +4n
 .nf
 
@@ -889,73 +620,39 @@ prctl(PR_SET_SECUREBITS,
 .in
 .SH 準拠
 .PP
-ケーパビリティに関する標準はないが、 Linux のケーパビリティは廃案になった
-POSIX.1e 草案に基づいて実装されている。
-.I http://wt.xpilot.org/publications/posix.1e/
-を参照。
+ケーパビリティに関する標準はないが、 Linux のケーパビリティは廃案になった POSIX.1e 草案に基づいて実装されている。
+\fIhttp://wt.xpilot.org/publications/posix.1e/\fP を参照。
 .SH 注意
-カーネル 2.5.27 以降、ケーパビリティは選択式のカーネルコンポーネント
-となっており、カーネル設定オプション CONFIG_SECURITY_CAPABILITIES
-により有効/無効を切り替えることができる。
+カーネル 2.5.27 以降、ケーパビリティは選択式のカーネルコンポーネント となっており、カーネル設定オプション
+CONFIG_SECURITY_CAPABILITIES により有効/無効を切り替えることができる。
 
-.I /proc/PID/task/TID/status
-ファイルを使うと、スレッドのケーパビリティセットを見ることができる。
-.I /proc/PID/status
-ファイルには、プロセスのメインスレッドのケーパビリティセットが表示される。
+\fI/proc/PID/task/TID/status\fP ファイルを使うと、スレッドのケーパビリティセットを見ることができる。
+\fI/proc/PID/status\fP ファイルには、プロセスのメインスレッドのケーパビリティセットが表示される。
 
-.I libcap
-パッケージは、ケーパビリティを設定・取得するための
-ルーチン群を提供している。これらのインタフェースは、
-.BR capset (2)
-と
-.BR capget (2)
-が提供するインターフェースと比べて、より使いやすく、変更される可能性が少ない。
-このパッケージでは、
-.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
+\fIhttp://www.kernel.org/pub/linux/libs/security/linux\-privs\fP
 
-バージョン 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
-2.6.25 より前の実装では、システム共通のケーパビリティ・バウンディングセット
-.I /proc/sys/kernel/cap-bound
-ではこのケーパビリティは常に無効になっており、
-ソースを変更してカーネルを再コンパイルしない限り、
-これを変更することはできない。
-.IP *
-現在の実装ではファイルケーパビリティが無効になっている場合、
-プロセス毎のバウンディングセットからこのケーパビリティを抜いて
-.B init
-は開始され、
-システム上で生成される他の全てのプロセスでこのバウンディングセットが
-継承される。
+2.6.25 より前の実装では、システム共通のケーパビリティ・バウンディングセット \fI/proc/sys/kernel/cap\-bound\fP
+ではこのケーパビリティは常に無効になっており、 ソースを変更してカーネルを再コンパイルしない限り、 これを変更することはできない。
+.IP *
+現在の実装ではファイルケーパビリティが無効になっている場合、 プロセス毎のバウンディングセットからこのケーパビリティを抜いて \fBinit\fP
+は開始され、 システム上で生成される他の全てのプロセスでこのバウンディングセットが 継承される。
 .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)
+\fBcapget\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), \fBpthreads\fP(7), \fBgetcap\fP(8), \fBsetcap\fP(8)
 .PP
-カーネルソース内の
-.I include/linux/capability.h
+カーネルソース内の \fIinclude/linux/capability.h\fP に
+各種のケーパビリティの目的についてのコメント
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。
index c010de8..dcc0092 100644 (file)
 ○:LDP man-pages:3.41:2009/02/12:ascii:7:2012/05/31::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.41:2010/09/19:boot:7:2012/05/31::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.41:2007/12/16:bootparam:7:2012/05/31::amotoki@gmail.com:Akihiro MOTOKI:
\98\86:LDP man-pages:3.40=>3.41:2012/04/15:capabilities:7:2012/05/26::amotoki@gmail.com:Akihiro MOTOKI:
\97\8b:LDP man-pages:3.41:2012/04/15:capabilities:7:2012/05/31::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.41:2008/06/03:charsets:7:2012/05/31::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.41:2011/09/16:complex:7:2006/07/16::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI:
 ○:LDP man-pages:3.41:2010/09/20:cp1251:7:2012/05/31::amotoki@gmail.com:Akihiro MOTOKI: