aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man2/jail.2
blob: d8a845277a4f9ad74a51baba2c72192977d67121 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
.\"
.\"----------------------------------------------------------------------------
.\""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.10.2.4 2000/12/29 14:44:52 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 28, 1999
.Dt JAIL 2
.Os FreeBSD
.Sh 名称
.Nm jail
.Nd 現在のプロセスとその将来の子孫を閉じ込める
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <sys/jail.h>
.Ft int
.Fn jail "struct jail *jail"
.Sh 解説
.Nm
システムコールは牢屋をつくり、現在のプロセスをその中に閉じ込めます。
.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 番号を設定します。
.Sh 牢屋\ ?
プロセスは一度牢屋に入れられると、それ自身とその子孫は牢屋から
逃れることはできません。既存の牢屋にプロセスを追加することはできません。
.Pp
牢屋の中では "スーパユーザ" の概念はとても弱まっています。一般に
全体が牢屋の中にあるわけではないものを牢屋の中から台無しにすることは
できないと考えられます。例えば
.Dq Li path 
の下のディレクトリツリーは
.Dq Li "rm -rf /*"
も含めて、ルートが普通にできるように操作できますが、
デバイス型特殊ノードは共有されたリソース (カーネルの中のデバイスドライバ) を
参照するので、新しく作ることはできません。
.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
で登場しました。
.Sh 作者
jail の機能は
.An Poul-Henning Kamp
によって R&D Associates
.Dq Li http://www.rndassociates.com/
のために書かれ、
.Fx
に寄贈されました。