設定では、SambaとApacheが/ var / wwwにアクセスできるようにセットアップしたいのですが、Sambaアクセスを許可するようにコンテキストを設定できますが、httpdにはアクセスできません。setenforceを0にすると問題が解消されるため、SELinuxであることがわかります。
また、フォルダーのコンテキストを表示するにはどうすればよいですか?また、フォルダーに複数のコンテキストを含めることはできますか?
(CentOS)
設定では、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ブール値に関するヒントを取得できます。
chcon -t public_content_rw_t /mnt/share/webroot(/.*)?
chcon -t public_content_rw_t /mnt/share
setsebool -P ftpd_full_access=1
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