ちょっとしたメモ書き(個別表示)
- SELinuxメモ : (2008/12/02)
-
SELinux関連だけど、CGIスクリプトが動作しない場合は以下の設定を見直す
getsebool -a | grep httpd
もしhttpd_enable_cgiとhttpd_enable_homedirsがoffになっていたら以下のコマンドを打ち込んでonにする。
setsebool httpd_enable_cgi 1
setsebool httpd_enable_homedirs 1
(-Pオプションを付ければ、再起動後も設定が残る)
httpd_enable_homedirsに関しては必須ではないかもしれないが、
自分の環境ではこれをoffにするとCGIスクリプトが動作しなかった。
これに関しては他の要因がありそうなので要調査。
さらに、各コンテンツのラベルを変更
静的コンテンツは
chcon -t httpd_sys_content_t ファイル名
書き込み可能なファイルは
chcon -t httpd_sys_content_rw_t ファイル名
CGIスクリプトのような実行可能なファイルは
chcon -t httpd_sys_script_exec_t ファイル名
非SELinux環境で問題なく動作するようApacheと各コンテンツが設定されているなら、あとは上記項目を見直せばSELinux環境でも動く(はず?)
ついでにSELinux絡みの別の問題について。
共有ライブラリ(soファイル等)のラベルも確認する必要があるかもしれない。
これは「textrel_shlib_t」となる。
これに関してはコマンドラインから実行した場合に「Permission denied」と言われるのですぐ気がつくと思うが。
しかし率直な感想を言うと「SELinuxめんどくさい」の一言に尽きる。
慣れればそうでもないんだろうか?
ちなみにSELinuxをOFFにするなら以下のような感じで
setenforce 0
ただし設定ファイルを書き換えておかないと、再起動したときに元に戻るので注意。
: back