SELinuxでのapacheのパーミッション

SELinux上でapacheを動かしたときにファイルのパーミッションでハマったのでメモ。

apacheでPermission deniedが出たので、よくあるいつものパーミッションの設定のミスだろうと思って、パーミッションの変更。

$ sudo chmod 644 index.html

しかし、全然解決せず。

なんでだー、と思っていろいろ調べたところ、どうもSELinuxパーミッションの設定ミスっぽい。設定前のパーミッションはこんな感じ。

$ ls -lZ
-rw-r--r--  root root user_u:object_r:user_home_t      index.html

ファイルをホームディレクトリで作って、それを移動したため、そのときのパーミッションが残ってしまっていたようです。このパーミッションの変更。

$ sudo /sbin/restorecon index.html
$ ls -lZ
-rw-r--r--  root root system_u:object_r:httpd_sys_content_t index.html

これで無事アクセスできるようになりました。

SELinuxパーミッションはどうも作ったディレクトリによって設定されるらしいです。結構盲点でした。