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


26

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

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

(CentOS)


system-config-selinuxのブールオプションを使用してみましたか?

回答:


39

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


私はこれを試しましたが、コンテキストがすでに定義されていると文句を言います。
ジョシュアエンフィールド

確かに、SELinuxを最後に台無しにしてから状況が変わったようです。他のオプションで回答を更新します。
デビッド

3
@Daveあなたは私の尻を救った。明日仕事で会いましょう。
ジョエルEサラス

ウェブルートがsamba共有にネストされている場合、親ディレクトリにもコンテキストを設定する必要があることに言及したかったのです。例:chcon -t public_content_rw_t /mnt/share/webroot(/.*)? chcon -t public_content_rw_t /mnt/share
グレッグシェレメタ14

1
私は似たようなではなく、FTPで苦しんでいた、ありがとう、そしてすべてがやった後に動作setsebool -P ftpd_full_access=1
giorgiline

9
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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.