Apache-2.2

如何讓 SELinux 允許 Apache 和 Samba 在同一個文件夾中?

  • February 9, 2022

在我已經設置的配置中,我希望允許 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 布爾值的提示。

引用自:https://serverfault.com/questions/131105