Apache-2.2
如何讓 SELinux 允許 Apache 和 Samba 在同一個文件夾中?
在我已經設置的配置中,我希望允許 samba 和 apache 訪問 /var/www 我可以設置一個上下文以允許 samba 訪問,但是 httpd 沒有訪問權限。使用 setenforce 到 0 可以消除問題,所以我知道它是 SELinux。
另外:如何查看一個文件夾的上下文,一個文件夾可以有多個上下文嗎?
(CentOS)
首先,您可以使用 ls -Z 查看某些內容的上下文
[root@servername www]# ls -dZ /var/www drwxr-xr-x root root system_u:object_r:httpd_sys_content_t /var/www
其次,有兩個選項可以讓 Samba 和 Apache 訪問同一目錄。
簡單的方法是只允許在任何地方進行 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。如果要更改所有內容,請在 chcon 中添加 -R:
chcon -R -t public_content_rw_t /var/www
你可以瀏覽這個 CentOS wiki 頁面以獲取有關其他 SELinux 布爾值的提示。