UNIXの伝統的なセキュリティ制御では立ち行かない今日では、SELinuxによるセキュリティが不可欠ですが、使わないと覚えないので、あえて有効のままにしています。
いつの間にか、apacheのWebディレクトリにsambaからアクセスできない
当初、Web用ディレクトリ(/var/www/html)にSambaからアクセスできるセキュリティコンテクストを設定してアクセス確認していたのですが、先日アクセスできなくなっていました。
Samba側のログ(/var/log/samba/xxx.log)を見ると、以下のようにエラーとなっています。
[2009/09/14 09:02:09, 0] smbd/service.c:make_connection_snum(1003) '/var/www/html' does not exist or permission denied when connecting to [www] Error was Permission denied
SELinux側のログ/var/log/audit/audit.logを確認すると、
type=AVC msg=audit(略): avc: denied { search } for pid=略 comm="smbd" name="www" dev=dm-0 ino=略 scontext=system_u:system_r:smbd_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=dir
となっています。
/var/www/htmlの設定は、
drwxr-xr-x root root system_u:object_r:public_content_t html
とpublic_content_tにすることでアクセス可能にしていたはずです。
調べると、ちょうど同じ現象にはまった人の記述がありました。
http://memolet.blog22.fc2.com/blog-category-108.html
ここを見ると、一つ上のディレクトリ/var/wwwにも、sambaからアクセスできる設定が必要とのことです。
# chcon -t public_content_t /var/www
としたら、Sambaからアクセス可能になりました。
Sambaが、アクセス可能なポイントの上のディレクトリをさわりにいくためのようです。