web-dev-qa-db-ja.com

SELinuxでApacheとSambaを同じフォルダで使用できるようにするにはどうすればよいですか?

構成で、SambaとApacheが/ var/wwwにアクセスできるように設定したいのですが、Sambaアクセスを許可するようにコンテキストを設定できますが、httpdにはアクセスできません。 setenforceを0に設定すると問題が解消されるため、SELinuxであることがわかります。

さらに:フォルダーのコンテキストを表示するにはどうすればよいですか。また、フォルダーに複数のコンテキストを含めることはできますか?

(CentOS)

26
Joshua Enfield

まず、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ブール値に関するヒントを得ることができます。

39
David
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
9
hm2k