EN JA
JAIL.CONF(5)
JAIL.CONF(5) FreeBSD File Formats Manual JAIL.CONF(5)

名称

jail.confjail(8) のための設定ファイル

解説

jail(8) 設定ファイルは、それらの jail 定義内の 1 つ以上の jail 定義文、パラメータまたは変数文から成ります。 jail 定義文は、C の複合文のように見えます。パラメータ文は、終了するセミコロンを含んで C の代入のように見えます。

jail 定義の一般的な構文は、次の通りです:

jailname { 
 parameter = "value"; 
 parameter = "value"; 
 ... 
}

各 jail は、その定義の前に name を持つように要求されます。これは、コマンド行で jail を指定し、jail 状態を報告するために jail(8) によって使用され、また、それは、jail を作成するとき、カーネルに渡されます。

パラメータ

jail は、jail 定義の内部で指定され、指定された 1 組のパラメータによって定義されます。 jail を作成し、削除するとき、使用される内部のパラメータと同様に、カーネルに渡される jail パラメータのリストについては、 jail(8) を参照してください。

典型的なパラメータには、名前と値があります。いくつかのパラメータは、ブール値で、“true”または“false”の値、または偽 (false) の値を示す“no”接頭辞を付けて、値のないショートカットとしてで指定されます。例えば、これらは、同等です:

allow.mount = "false"; 
allow.nomount;

他のパラメータは、2 つ以上の値があるかもしれません。値のコンマで区切られたリストは、単一の文で設定されるか、または既存のパラメータのリストは、“+=”を使用して付け加えられます:

ip4.addr = 10.1.1.1, 10.1.1.2, 10.1.1.3; 
 
ip4.addr = 10.1.1.1; 
ip4.addr += 10.1.1.2; 
ip4.addr += 10.1.1.3;

name パラメータは、jail 定義の名前に暗黙のうちに設定されることに注意してください。

文字列書式

jail 名を含むパラメータ値は、単一のトークンまたは引用文字列を指定できます。トークンは、設定ファイル (セミコロンまたは空白類のような) の構文に特有であると見なされない文字の任意のシーケンスです。値が文字、数値、ドット、ダッシュと下線文字以外の何かを含んでいるなら、その値のまわりに引用符を置くことは望ましいことです。シングルクォートまたはダブルクォートのいずれかを使用できます。

特殊文字は、バックスラッシュをそれらに先行するすることによって、引用されます。共通の C スタイルのバックスラッシュ文字コードも、制御文字と 8 進数または 16 進数の ASCII コードを含めてサポートされます。ラインの終りのバックスラッシュは、続く改行を無視し、次の行の最初の文字列を継続します。

変数

文字列は、シェルスタイルの変数置換を使用できます。ドル記号によって先行され多分大括弧で囲まれたパラメータまたは変数名は、パラメータまたは変数の値で置き換えられます。例えば、jail のパスは、その名前またはホスト名に関して定義されます:

path = "/var/jail/$name"; 
 
path = "/var/jail/${host.hostname}";

変数の置換は、引用されていないトークン、またはダブルクォートで引用された文字列で生じますが、シングルクォートの文字列の中では生じません。

変数は、変数名がドル記号に先行することを除いて、パラメータと同じ方法で定義されます:

$parentdir = "/var/jail"; 
path = "$parentdir/$name";

パラメータと変数の間の違いは、変数が置換のためだけに使用され、一方パラメータは、置換のためのとカーネルに渡すための両方に使用されます。

ワイルドカード

“*”の名前がある jail 定義は、ワイルドカードのパラメータを定義するために使用されます。すべての定義された jail は、ワイルドカードの定義の任意のパラメータと同様に、それ自体の定義文からの両方のパラメータを含みます。

変数置換は、その置換がワイルドカードのセクションで定義されたパラメータのためである場合にさえ、jail ごとを基準として行われます。これは、基づいたワイルドカードのパラメータに役に立ちます、例えば、jail 名。

設定ファイルの後の定義は、前のものに優先するので、jail 定義の前に (上に) 置かれたワイルドカードのセクションは、jail ごとを基準として変更することができるパラメータを定義します。または、すべての jail の後に (下に) 置かれたワイルドカードのセクションは、すべての jail に常に適用されるパラメータを含みます。複数のワイルドカードの文は、許可され、ワイルドカードのパラメータも、 jail 定義文の外側で指定できます。

階層的な jail が定義されるなら、部分的なマッチングのワイルドカード定義を指定することができます。例えば、“foo.*”名前がある定義は、“foo.bar”と“foo.bar.baz”のような名前がある jail に適用します。

コメント

設定ファイルは、共通の C、C++ とシェル形式でコメントを含むことができます:

/* これは, C スタイルのコメントです. 
 * それは, 複数の行にまたがるかもしれません. 
 */ 
 
// これは, C++ スタイルのコメントです. 
 
#  これは, シェルスタイルのコメントです.

コメントは、余白類が許されるところならどこでも、適正です、すなわち、文字列またはトークンの間を除いてどこでもです。

使用例

# 典型的な静的なデフォルト: 
# jail を開始し停止するために rc スクリプトで使用します. 
# jail の /dev/ をマウント. 
exec.start = "/bin/sh /etc/rc"; 
exec.stop = "/bin/sh /etc/rc.shutdown"; 
exec.clean; 
mount.devfs; 
 
# 動的なワイルドカードのパラメータ: 
# jail 名からパスに基づく. 
path = "/var/jail/$name"; 
 
# 典型的な jail. 
foo { 
 host.hostname = "foo.com"; 
 ip4.addr = 10.1.1.1, 10.1.1.2, 10.1.1.3; 
} 
 
# この jail は, 上記に定義されたデフォルトを上書きします. 
bar { 
 exec.start = ''; 
 exec.stop = ''; 
 path = /; 
 mount.nodevfs; 
 persist; // プロセスがないので要求される 
}

関連項目

jail_set(2) jail(8) jls(8)

歴史

jail(8) ユーティリティは、 FreeBSD 4.0 で登場しました。 jail.conf ファイルは、 FreeBSD 9.1 で追加されました。

作者

jail 機能は、R&D Associates http://www.rndassociates.com/ のために Poul-Henning Kamp によって書かれ、 FreeBSD に寄贈されました。

James Gritton は、拡張可能な jail パラメータと設定ファイルを追加しました。

May 23, 2012 FreeBSD