tomoyotitle.png

Chapter 8: ポリシーを変更する権限

8.1. プログラムを登録する

/sys/kernel/security/tomoyo/ インタフェースを経由してポリシーを変更することができるプログラムやドメインは、 /sys/kernel/security/tomoyo/manager インタフェースに登録されている必要があります。以下の例では /usr/sbin/tomoyo-editpolicy を登録しています:

# echo "/usr/sbin/tomoyo-editpolicy" | /usr/sbin/tomoyo-loadpolicy -m

8.2. 非 root ユーザによる変更を認める

デフォルトでは、ユーザIDと実効ユーザIDの両方が0(つまり root ユーザ)のプロセスだけがポリシーを変更することができます。$USER ユーザによるポリシーの変更を認めたい場合には、以下のコマンドを実行してください:

# echo "manage_by_non_root" | /usr/sbin/tomoyo-loadpolicy -m
# chown -R $USER /sys/kernel/security/tomoyo/

デフォルト状態に戻すには以下のコマンドを実行してください:

# echo "delete manage_by_non_root" | /usr/sbin/tomoyo-loadpolicy -m
# chown -R root /sys/kernel/security/tomoyo/

もし、特定のユーザに対してポリシーの変更を認めたい場合、 /etc/tomoyo/tomoyo-post-init を使うことができます。このファイルが存在する場合、起動時に /sbin/tomoyo-init から実行されます。 tomoyo ユーザによる変更を認めたい場合、以下の内容で /etc/tomoyo/tomoyo-post-init を作成してください:

#! /bin/sh
echo manage_by_non_root > /sys/kernel/security/tomoyo/manager
chown -R tomoyo /sys/kernel/security/tomoyo/

そして、このファイル実行可能にして、ポリシーディレクトリ以下を tomoyo ユーザが読み書きできるようにしてください:

# chmod 755 /etc/tomoyo/tomoyo-post-init
# chown -R tomoyo /etc/tomoyo/

例外として、学習モード用のプロファイルが割り当てられているドメインに属しているプロセスは、 max_learning_entry で指定されている数を上限としてそのプロセスが属しているドメインに対してアクセス許可を追加していくことができます。