jpman project specific RCS keyword (jpman %Id) is obsolete, after manual entries are stored in freefall CVS repository. This old Id is useless and more worse it confuses users and bug reporters. So, this old Id is removed. Submitted by:jpman project <man-jp@jp.FreeBSD.org>
104 lines
2.7 KiB
Groff
104 lines
2.7 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.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
|
|
に寄贈されました。
|