構成で、SambaとApacheが/ var/wwwにアクセスできるように設定したいのですが、Sambaアクセスを許可するようにコンテキストを設定できますが、httpdにはアクセスできません。 setenforceを0に設定すると問題が解消されるため、SELinuxであることがわかります。
さらに:フォルダーのコンテキストを表示するにはどうすればよいですか。また、フォルダーに複数のコンテキストを含めることはできますか?
(CentOS)
まず、ls -Zを使用して、lsで何かのコンテキストを表示できます。
[root@servername www]# ls -dZ /var/www
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t /var/www
2つ目は、SambaとApacheに同じディレクトリへのアクセス権を与えるための2つのオプションがあります。
簡単な方法は、次のようにして、どこでもsambaに読み取り/書き込みアクセスを許可することです。
setsebool -P samba_export_all_rw 1
それはシンプルで簡単で、SELinuxの奇妙なプロパティを混乱させることはありません。
Sambaがすべてのディレクトリに完全にアクセスできることに関心があり、/ var/wwwのみを変更したい場合は、以下を試してください。
chcon -t public_content_rw_t /var/www
setsebool -P allow_smbd_anon_write 1
setsebool -P allow_httpd_anon_write 1
これにより、SambaとApacheの両方で、public_content_rw_tコンテキストを持つ任意のディレクトリへの書き込みアクセスが可能になります。 chconは/ var/wwwのみを変更していることに注意してください。/var/wwwの下に作成された新しいディレクトリはpublic_content_rw_tになりますが、/ var/www/htmlや/ var/www/manualなどの既存のディレクトリは含まれません。すべてを変更したい場合は、-Rをchconに追加します。
chcon -R -t public_content_rw_t /var/www
このCentOS wikiページ を調べて、他のSELinuxブール値に関するヒントを得ることができます。
SHARING FILES
If you want to share files with multiple domains (Apache, FTP, rsync,
Samba), you can set a file context of public_content_t and public_content_rw_t.
These context allow any of the above domains to read the
content. If you want a particular domain to write to the public_con‐
tent_rw_t domain, you must set the appropriate boolean.
allow_DOMAIN_anon_write. So for samba you would execute:
setsebool -P allow_smbd_anon_write=1
例えば:
semanage fcontext -a -t public_content_rw_t '/var/www(/.*)?'
restorecon -R /var/www
setsebool -P allow_smbd_anon_write 1