よくSELinux運用下でWebサーバー立ててると直面する現象に、
ちゃんとパーミッションの設定したのに、Permission denyで怒られる事があります。
原因は、SELinuxで、コレを知るまでエライ目に遭ったことが有ります。

ちゃんと勉強しないといけないんですが、軽くメモを。
全然詳しい訳でもないので、もしかしたら大嘘付いているかもしれません。

例えばWebサーバーで、権限設定はあっているのにパーミッションエラーでアクセス出来ないなんて場合が有ります。

$ ls -l hoge.html
-rw-r--r--   1 apache  apache  719  2  5 22:58 hoge.html


そんな時はlsのZオプションを指定すると、SELinuxのセキュリティコンテキストが見れます。

$ ls -lZ hoge.html
-rw-r--r--  apache  apache system_u:object_r:user_home_t hoge.html

system_u:object_r:user_home_tの部分がセキュリティコンテキストですね。
前から、ユーザー識別子、ロール識別子、タイプ識別子と言うらしいのですが、一番重要なのは、タイプ識別子です。

上記例の場合タイプ識別しがuser_home_tになっています。
一方httpdが所属するのはhttpd_tです。コレをドメインと言うようです。SELinux上の各ドメインはお互いにコンパートメント化されており、ほかのドメインからの不正なアクセスを許可しないように定義されています。その為、たとえOSのパーミッションが有っていてもアクセスできないのですね。

セキュリティコンテキストを変えるためには、chconコマンドを使います。

$ chcon system_u:object_r:httpd_sys_content_t hoge.html
$ ls -lZ hoge.html
-rw-r--r--  apache apache system_u:object_r:httpd_sys_content_t hoge.html

コレでWebサーバーからhoge.htmlにアクセス出来ます。
httpdのドメインがhttpd_tなのにhttpd_sys_content_tと権限設定するのは何故かって事は聞かないで下さい。
嵌りがちなので書いた程度なので。近々ちゃんと勉強します・・・。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: 権限設定で嵌りがちな事

このブログ記事に対するトラックバックURL: http://hackmylife.net/mt/mt-tb.cgi/391

コメントする

このブログ記事について

このページは、hackmylifeが2007年3月11日 00:04に書いたブログ記事です。

ひとつ前のブログ記事は「資格試験」です。

次のブログ記事は「fedoraにOpenCVを導入」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0

アドセンス

MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore
MoMAstore
MoMAstore
MoMAstore