tomoyotitle.png

ポリシーエディタの使い方

内容


1. 起動方法

ポリシーエディタは以下のように実行することができます:

# /usr/sbin/tomoyo-editpolicy

以下のオプションをコマンドラインに指定することができます。

1.1. ポリシーディレクトリの指定

ポリシーエディタはデフォルトで /sys/kernel/security/tomoyo/ ディレクトリにあるポリシーを編集します。

指定

意味

$ipaddress:$port

$ipaddress という IPv4 アドレスを持つホストのポート $port で待機しているポリシー編集エージェントプロセスに接続します。

/$path/$to/$directory

/$path/$to/$directory ディレクトリ内の policy/current/ ディレクトリにあるポリシーファイルを編集します。通常は /etc/tomoyo/ を指定します。

1.2. 最初に表示する画面の指定

ポリシーエディタはデフォルトで Domain Transition Editor 画面を表示します。

指定

意味

e

Exception Policy Editor 画面

exception_policy.png

この画面は /sys/kernel/security/tomoyo/exception_policy を編集するために使用します。

d

Domain Transition Editor 画面

domain_transition.png

この画面は /sys/kernel/security/tomoyo/domain_policy を編集するために使用します。
1行目には現在表示されている画面の名前と定義されているドメインの数が表示されます。
2行目はメッセージ表示領域です。
3行目はカーソルのある行のドメイン名が表示されます。
4行目以降には定義されているドメインの一覧が表示されます。

p

Profile Editor 画面

profile.png

この画面は /sys/kernel/security/tomoyo/profile を編集するために使用します。

m

Manager Policy Editor 画面

manager.png

この画面は /sys/kernel/security/tomoyo/manager を編集するために使用します。

n

Namespace Selector 画面

namespace.png

この画面は名前空間を選択するために使用します。

s

Statistics 画面

stat.png

この画面は /sys/kernel/security/tomoyo/stat を編集するために使用します。

1.3. 最初に表示する名前空間の指定

ポリシーエディタはデフォルトで <kernel> 名前空間を表示します。

指定

意味

<$namespace>

<$namespace> 名前空間を表示します。

それぞれの名前空間は独立した Exception Policy Editor 画面、 Domain Transition Editor 画面、 Profile Editor 画面を持っています。現在表示されている名前空間はそれぞれの画面の3行目に表示されます。

名前空間は Namespace Selector 画面から切り替えできる他、 Domain Transition Editor 画面に表示されるショートカットからも切り替えできます。

1.4. 動作モードの指定

ポリシーエディタはデフォルトで閲覧と編集の両方ができるモードで動作します。

指定

意味

readonly

閲覧専用モードで動作します。

1.5. 自動更新の指定

ポリシーエディタはデフォルトで r キーが押されたときだけ最新の情報に更新します。

指定

意味

refresh=$interval

$interval 秒ごとに自動的に最新の情報に更新します。閲覧専用モードで使うことを前提としています。


2. 利用可能なコマンド

ポリシーエディタは ncurses インタフェースを利用しており、操作は全てキーボードで行います。

2.1. スクロール


キー

スクロール動作

↑キー

1行上へスクロールします。

↓キー

1行下へスクロールします。

PageUp キー

1画面上へスクロールします。

PageDown キー

1画面下へスクロールします。

→ キー

1桁右へスクロールします。

← キー

1桁左へスクロールします。

Home キー

行の先頭へ移動します。

End キー

行の末尾へ移動します。

2.2. 検索


キー

検索動作

f または F キー

最初に一致するエントリを検索します。

検索を開始するには、 f キーを押して、検索したい文字列を入力し、最後に Enter キーを押します:

find.png

n または N キー

次に一致するエントリを検索します。

前回入力した文字列で順方向(下方向)に検索を続行します。

p または P キー

前に一致するエントリを検索します。

前回入力した文字列で逆方向(上方向)に検索を続行します。

2.3. 編集


キー

編集動作

Insert キー

カーソルのある行のエントリをヒストリバッファにコピーします。

a または A キー

エントリを追加します。

エントリを追加するには、 a キーを押して、追加したい内容を入力し、最後に Enter キーを押します:

add.png

入力した内容はヒストリに残っており Insert キーでヒストリの内容を確認できます。
ヒストリの内容を呼び出すには ↑ および ↓ キーを使います。
ヒストリ機能は Statistics 画面を除く全ての画面で利用できます。

Space キー

カーソルのある行の選択状態を反転させます。

選択したいエントリの行へとカーソルを移動させてから Space キーを押してください。
選択することにより & マークが行頭に表示されます。
複数の行を選択することができます。
再度 Space キーを押すことにより、選択を解除することができます。

c または C キー

カーソルのある行の選択状態をそれ以降の全ての行にコピーします。

c キーを押すと、カーソルのある行の選択状態をそれ以降の全ての行へとコピーすることができます:

copy.png

これは、全てのエントリや特定の範囲のエントリを選択する際に便利です。
特定の範囲のエントリを選択したい場合、その範囲の最初のエントリの行へとカーソルを移動させて(選択するために) Space キーを押し、続けて c キーを押します。
そして、範囲の最後のエントリの次の行へとカーソルを移動させて(選択を解除するために) Space キーを押し、続けて c キーを押します。

d または D キー

選択されたエントリを削除します。

エントリを削除するには、削除したいエントリの行へとカーソルを移動させて d キーを押します:

delete.png

削除したいエントリを全て選択してから行うこともできます。

s または S キー

Domain Transition Editor 画面では、選択されたドメインのプロファイル番号を設定します。
Profile Editor 画面では、選択されたプロファイルの値を設定します。
Statistics 画面では、選択されたエントリのクォータを設定します。

Enter キー

Domain Transition Editor 画面においてカーソルのある行のドメインのアクセス許可を編集します。

2.4. その他


キー

その他の動作

q または Q キー

終了します。

r または R キー

最新の情報に更新します。

w または W キー

選択可能な画面の一覧を表示します。

w キーを押すと画面の一覧が表示されます。その画面からキーを押すと、対応する画面へと切り替わります:

window.png

3. Domain Policy Editor 画面固有の操作

3.1. Domain Policy Editor 画面

この画面は、 Domain Transition Editor 画面でカーソルをドメイン名に合わせてから、 Enter キーを押すあるいは w キーを押してから a キーを押すことで表示することができます。

domain_policy.png

3.2. アクセス許可をパターン化する

冗長なエントリはパターン化することにより除去することができます( Chapter 6: ポリシーはどのように作成しますか?を参照してください)。 Domain Policy Editor 画面で file read /home/kumaneko/SVN/\{\*\}\/\* のようなエントリを追加してください:

added_patterned_entry.png

手作業で追加されたこのエントリは既に定義されている多くのエントリに一致します。カーソルをパターン化されたこのエントリに合わせて、 o キーを押してください。すると、カーソルのある行に包含されるエントリが全て選択されます:

mark_matching_entry.png

d キーを押すことにより、選択されたエントリを削除することができます。追加したパターン化されたエントリ全てに対してこの操作を繰り返すことができます。

3.3. 表示順を切り替える

@ キーを押すと、表示順を切り替えることができます。

acl_by_directives.png acl_by_operands.png

4. Domain Transition Editor 画面固有の操作

4.1. ドメイン遷移のパターンと例外を確認する

この画面には、現在編集中の名前空間に含まれるドメインの一覧と、その遷移パターンが表示されます。また、ドメイン遷移の例外が発生する場合には、その情報についても表示されます。

1番左側に行番号が表示されている行( 4.1.1 ~ 4.1.3 )は実在するドメインについての情報です。左から2番目の数値が、そのドメインに割り当てられているプロファイル番号です。

1番左側に行番号が表示されていない行( 4.1.4 ~ 4.1.7 )は実在しないドメインについての情報です。親ドメインが存在しない場合またはドメイン遷移の例外が発生する場合の遷移先を示すショートカットとして表示されます。

4.1.1. ! マークが表示されているドメインについて

丸括弧内に示されたディレクティブにより、このドメインへ到達することができないことを示しています。
到達できないドメインが不要であれば、削除することができます。

unreachable.png

4.1.2. * マークが表示されているドメインについて

親ドメイン以外からこのドメインへ到達する可能性があることを示しています。

domain_jump_target.png

4.1.3. # マークが表示されているドメインについて

複数のプログラムがこのドメインで動作する可能性があることを示しています。

keep_domain.png

4.1.4. ( -> n ) という表示があるドメインについて

ドメイン遷移例外指定により、 n 番目のドメインへと遷移することを示しています。

domain_jump_source.png

4.1.5. ( -> Namespace Jump ) という表示があるドメインについて

ドメイン遷移例外指定により、 現在表示されている名前空間の外部にあるドメインへと遷移することを示しています。

domain_jump_across_namespace.png

4.1.6. ( -> Not Found ) という表示があるドメインについて

ドメイン遷移例外指定により指定されたドメインが定義されていないことを示しています。

domain_jump_no_target.png

4.1.7. ドメイン名が ( ) で囲まれたドメインについて

このドメインが定義されていないことを示しています。この行はツリーのインデントを崩さないようにするために表示されます。

missing_domain.png

4.2. プロファイル番号を変更する

s キーを押して、プロファイル番号を入力し、 Enter キーを押してください:

profile.png

4.3. ドメインのアクセス許可を編集する

Domain Transition Editor 画面でカーソルをドメイン名に合わせてから、 Enter キーを押す(あるいは w キーを押してから a キーを押す)と、 Domain Policy Editor 画面に移動します。Domain Policy Editor 画面で Enter キーを押す(あるいは w キーを押してから d キーを押す)と、 Domain Transition Editor 画面に戻ります。

domain_transition.png domain_policy.png

4.4. 現在実行中のプロセスが属しているドメインのアクセス許可を編集する

Domain Transition Editor 画面で @ キーを押すと、 Process State Viewer 画面に移動します。この画面には、現在実行中のプロセスの一覧と、そのプロセスが属しているドメインの情報が pstree コマンドのように表示されます。カーソルをプロセスに合わせてから、 Enter キーを押す(あるいは w キーを押してから a キーを押す)と、 Domain Policy Editor 画面に移動します。 Process State Viewer 画面で @ キーを押すと、 Domain Transition Editor 画面に戻ります。

domain_transition.png process_tree.png