デスクトップCGIでWebとデスクトップを融合する 第1回をやろうとした。
やろうとするなかで、CGIからfirefoxのbookmarks.htmlを読み込む箇所があった。
とりあえず、PERLから読み込むのには成功するが、CGIからだとSELinuxに引っかかって
#tail /var/log/message
Jan 28 13:50:46 localhost setroubleshoot: #012 SELinux は feed.cgi よる誤ったラベル付けの可能性のあるファイル (<Unknown>) の読み込みを阻止しています。#012 For complete SELinux messages.
|
のように怒られた。適当にうろ覚えの知識で誤魔化そうとするも惨敗。
どうやら今まで避けてきたSELinuxの知識が必要らしかった。
しかたなく二時間ほど勉強したが、そのなかでよかったところをメモ。
・
Fedora Core3 SELinuxメモでなんとなく概要が掴めた。
・Fedora Core5ビギナーズバイブルっていう本(←このシリーズはとても役立つと思う)
・
第一人者がやさしく教える新SELinux入門
多少知識を身につけて、再度挑戦。とりあえずタイプを調べる。
$cd ~/.mozilla/firefox/gpdfilxj.default/
$ls -Z
-rw-r--r-- ユーザ名 グループ名 system_u:object_r:user_mozilla_home_t:s0 bookmarks.html
|
ApacheのCGIからは、このタイプへのアクセス権がないので怒られていたことが分かった。
なので、
第一人者がやさしく教える新SELinux入門の
新SELinux入門 第5回 タイプを変更してトラブルに対処する
にかかれているように、複数のタイプで読めるようなタイプに変えればいい。
$ cd
$ chcon -t public_content_rw_t .mozilla
$ chcon -t public_content_rw_t .mozilla/firefox
$ chcon -t public_content_rw_t .mozilla/firefox/gpdfilxj.default
$ chcon -t public_content_rw_t .mozilla/firefox/gpdfilxj.default/bookmarks.html
|
(目的のファイルまでのディレクトリもタイプを変えないとダメみたい)
とりあえずCGIでファイルを読めるようになった。firefoxからお気に入りの追加もできた。
環境整えるだけでトータル三時間ほどかかった。なんだかなー。