seeditとオリジナルSELinuxの定量的比較
オリジナルSELinux のマクロ/パーミッションの数
refpolicy(serefpolicy-2.2.25)で使われているマクロの数を数えてみた。
interface: 1800個。
template: 124個
普通マクロ: 88個
合計2008個 orz
数え方は、
grep "interface(\`" * -r |cat -n
のようにしただけ。
凄い数だ。
seeditでは
- 書式の数: マクロに相当するのは、allow,allownetなどの設定書式
allow , allowdev , allowfs ,allowtmp ,allownet , allowcom ,allowpriv ,deny ,denypriv
10種類の書式があることになる。
- 設定可能なパーミッションの数
allow : r,s,a,o,t,c,e,w 8種類の指定
allowdev 1 + 2+4+2 = 9
allowfs: 8
allowtmp 8
allownet 23
allowcom 15
allowpriv 37
→ 約108。
オリジナルとseeditを比較すると
- seedit
- 10種類の設定書式を使い、約100のパーミッションを設定
- seeditの書式(SPDL)の範囲内ですべて記述可能。自分で書式を拡張する必要は無い。
結論
科学的に完全にフェアな比較かどうかは別として、
seeditのほうがはるかに簡単なのは明らかだろう。
memo
------------------------- #SELinux deny log: type=AVC msg=audit(1147987651.897:34): avc: denied { search } for pid=9377 comm="httpd" name="error" dev=hda3 ino=162025 scontext=user_u:system_r:httpd_t tcontext=system_u:object_r:default_t tclass=dir type=AVC msg=audit(1147987651.897:35): avc: denied { search } for pid=9377 comm="httpd" name="error" dev=hda3 ino=162025 scontext=user_u:system_r:httpd_t tcontext=system_u:object_r:default_t tclass=dir #Suggested configuration File httpd_t.sp: allow /var/www/error/noindex.html s; -------------------------
上のような設定が吐き出されるのは無害だが変。デモしづらいので直す。