[tomoyo-users 691] Re: quota_exceeded について教えてください

Back to archive index

Tetsuo Handa from-****@I-lov*****
2009年 12月 14日 (月) 01:01:06 JST


 熊猫です。

yocto さんは書きました:
> > ドメインを削除して作りなおすと表示されなくなります。
> > 他のアクセス許可と同様に d で削除できるようにした方が便利ですか?
> 
> はい、削除出来ないと2回目以降の発生が判らないのでdで削除できた方が
> いいと思います。

 以下のパッチを適用すると削除できるようになると思います。(動作未確認)

Index: security/ccsecurity/policy_io.c
===================================================================
--- security/ccsecurity/policy_io.c	(revision 3248)
+++ security/ccsecurity/policy_io.c	(working copy)
@@ -960,6 +960,14 @@
 		domain->ignore_global_allow_env = !is_delete;
 		return 0;
 	}
+	if (!strcmp(data, "quota_exceeded")) {
+		domain->quota_warned = !is_delete;
+		return 0;
+	}
+	if (!strcmp(data, "transition_failed")) {
+		domain->domain_transition_failed = !is_delete;
+		return 0;
+	}
 	cp = ccs_find_condition_part(data);
 	if (cp) {
 		cond = ccs_get_condition(cp);

> # アクセス許可の数が減ったら自動で削除される方が便利ですが...

 この処理を実装することは可能ですが、実装しない方が良いと思います。
これは「ドメインに含まれるアクセス許可の数 <= そのドメインに割り当てられている
プロファイルの学習モードで指定されているアクセス許可の上限の数」が成立した時に
削除されるという処理になります。そのため、 d でアクセス許可を削除しなくても、
プロファイルのアクセス許可の上限の数を増加させただけでこの条件が成立して
しまいます。この「 quota_exceeded 」メッセージは「学習モードでの動作中に自動で
追加されなかったものがあるので注意してね。」とユーザに対して注意喚起することが
目的なので、ユーザの了解なしに勝手に消滅しない方が良いと思うのです。
(「 transition_failed 」メッセージは「メモリ不足などの理由により、プログラム
実行時にドメインを自動で作成できなかったものがあるので注意してね。」とユーザに
対して注意喚起することが目的です。)そういう意味では、ファイルに保存された
quota_exceeded や transition_failed を読み込み時に無視しない動作(上記パッチ
適用後の動作)の方が適切かもしれませんね。

> > > quota_exceeded(1.7.1) は
> > > ・ログには出ない。
> > 
> > /proc/ccs/grant_log や /proc/ccs/reject_log には出力されません。
> 
> reject_logに出た方がいいと思いますが、いかがでしょうか。

 アクセス許可の上限で自動的に止まる /proc/ccs/domain_policy とは異なり、
/proc/ccs/reject_log はアクセス許可の上限で止まることは無い(アクセスログの
上限で自動的に止まることはある)ので quota_exceeded を出力する必要は無いと
思うのですが、 /proc/ccs/domain_policy ではなく /proc/ccs/reject_log から
チェックしたいのであれば、出力するようにしても構いません。




tomoyo-users メーリングリストの案内
Back to archive index