全アクセスベクタの解析中。
「実は利用不能なアクセスベクタ」があることに気づく。
例えば,「swapon」。
swaponは,swaponコール時にチェックされるアクセスベクタである(理論上)。
swaponを実験してみた。
ファイルhogeに対して,
mkswap hoge
swapon hoge -p 0
とすると,hogeスワップファイルになる。
しかし,swaponアクセスベクタはチェックされない!
それもそのはず,ソースを見ても使われてない。
で、スワップが発生すると,ファイルhogeが破壊されてしまう。
しかも、ログには何も残らない。
カーネルがwriteを介さず直接アクセスしてるらしいので。
ただし,swaponを使うには,
そのファイルに対して,「getattr, read, write」が必要なので,
さほどやばくないかもしれない。

「アクセスベクタが定義されているが,実は利用不可能」
というのはかなりやばい気がする…
ある意味,「セキュアなふりをしている」ことになる。
「何が利用不能か」をちゃんと解析せねば。

ちなみに,swapon時にcapability sys_adminもチェックされる。
しかし,capability sys_adminは粒度が粗すぎるので,イマイチ。