doc/documentation/manual-pages/ja/man2/jail.2
Sergio Carlavilla Delgado 989d921f5d Migrate doc to Hugo/AsciiDoctor
I'm very pleased to announce the release of
our new website and documentation using
the new toolchain with Hugo and AsciiDoctor.

To get more information about the new toolchain
please read the FreeBSD Documentation Project Primer[1],
Hugo docs[2] and AsciiDoctor docs[3].

Acknowledgment:
Benedict Reuschling <bcr@>
Glen Barber <gjb@>
Hiroki Sato <hrs@>
Li-Wen Hsu <lwhsu@>
Sean Chittenden <seanc@>
The FreeBSD Foundation

[1] https://docs.FreeBSD.org/en/books/fdp-primer/
[2] https://gohugo.io/documentation/
[3] https://docs.asciidoctor.org/home/

Approved by:    doceng, core
2021-01-26 00:31:29 +01:00

134 lines
3.2 KiB
Groff

.\"
.\"----------------------------------------------------------------------------
.\""THE BEER-WARE LICENSE" (Revision 42):
.\"<phk@FreeBSD.ORG> wrote this file. As long as you retain this notice you
.\"can do whatever you want with this stuff. If we meet some day, and you think
.\"this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
.\"----------------------------------------------------------------------------
.\"%FreeBSD: src/lib/libc/sys/jail.2,v 1.27 2004/06/21 18:57:32 mpp Exp %
.\"
.\" $FreeBSD$
.Dd April 8, 2003
.Dt JAIL 2
.Os
.Sh 名称
.Nm jail , jail_attach
.Nd 現在のプロセスとその将来の子孫を閉じ込める
.Sh ライブラリ
.Lb libc
.Sh 書式
.In sys/param.h
.In sys/jail.h
.Ft int
.Fn jail "struct jail *jail"
.Ft int
.Fn jail_attach "int jid"
.Sh 解説
.Fn jail
システムコールは牢屋をつくり、現在のプロセスをその中に閉じ込めます。
.Pp
引数は牢屋を記述する構造体へのポインタです。
.Bd -literal -offset indent
struct jail {
u_int32_t version;
char *path;
char *hostname;
u_int32_t ip_number;
};
.Ed
.Pp
.Dq Li version
には使用する API のバージョンを定義します。
今のところ 0 に設定します。
.Pp
.Dq Li path
ポインタには牢屋のルートになるディレクトリを設定します。
.Pp
.Dq Li hostname
ポインタには牢屋のホスト名を設定します。
これは牢屋の中から変更できます。
.Pp
.Dq Li ip_number
は牢屋に割り当てる IP 番号を設定します。
.Pp
.Fn jail_attach
システムコールは、
.Fa jid
によって識別される既存の jail を現在のプロセスにアタッチします。
.Sh 戻り値
成功の場合には、
.Fn jail
は jail 識別子 (JID) と呼ばれる負ではない整数を返します。
失敗の場合には \-1 を返し、そのエラーを示すために
.Va errno
を設定します。
.Pp
.Rv -std jail_attach
.Sh 牢屋?
プロセスは一度牢屋に入れられると、それ自身とその子孫は牢屋から
逃れることはできません。
.Pp
牢屋の中では
.Dq スーパユーザ
の概念はとても弱まっています。
一般に全体が牢屋の中にあるわけではないものを牢屋の中から台無しにすることは
できないと考えられます。
例えば
.Dq Li path
の下のディレクトリツリーは
.Dq Li "rm -rf /*"
も含めて、root が普通にできるように操作できますが、
デバイス型特殊ノードは共有されたリソース (カーネルの中のデバイスドライバ) を
参照するので、新しく作ることはできません。
プロセスにとっての実際の
.Dq セキュアレベル
は、グローバルな
.Dq セキュアレベル
と、jail 毎の
.Dq セキュアレベル
(存在する場合) の大きい方です。
.Pp
IP 活動はすべて指定された IP 番号に制限されます。
指定された IP 番号はネットワークインタフェースのうちの 1 つの別名で
あるべきです。
.Pp
.Dq Li /proc/<pid>/status
を調べることで閉じ込められたプロセスを識別することができます。
行末のフィールドが、閉じ込められていないプロセスではハイフン 1 つ、
閉じ込められたプロセスでは現在牢屋に設定されているホスト名になります。
.Sh エラー
.Fn jail
システムコールは次の場合に失敗します:
.Bl -tag -width Er
.It Bq Er EINVAL
引数のバージョン番号が正しくありません。
.El
.Pp
さらに
.Fn jail
は内部で
.Xr chroot 2
を呼ぶので、全く同じ理由で失敗する可能性があります。
詳しくは
.Xr chroot 2
のマニュアルページを参照して下さい。
.Sh 関連項目
.Xr chdir 2 ,
.Xr chroot 2
.Sh 歴史
.Fn jail
システムコールは
.Fx 4.0
で登場しました。
.Fn jail_attach
システムコールは
.Fx 5.1
で登場しました。
.Sh 作者
jail の機能は
.An Poul-Henning Kamp
によって R&D Associates
.Dq Li http://www.rndassociates.com/
のために書かれ、
.Fx
に寄贈されました。