Linux

SELinux - 允許多個服務訪問同一個 /home/dir

  • April 20, 2017

我目前啟用了 SELinux,並且能夠配置 apache 以允許使用chcon授予“httpd_sys_content_t”類型的命令訪問 /home/src/web。但是現在我試圖從同一目錄提供 rsyslogd.conf 文件,但是每次我啟動 rsyslogd 時,我都會在我的審計日誌中看到一個條目,說 rsyslogd 被拒絕訪問。我的問題是,是否可以授予兩個應用程序訪問同一目錄的能力,同時仍保持 SELinux 啟用?

/home/src 上的目前權限:

drwxr-xr-x. src      src      unconfined_u:object_r:httpd_sys_content_t:s0 src

審核日誌消息:

type=AVC msg=audit(1349113476.272:1154): avc:  denied  { search } for  pid=9975 comm="rsyslogd" name="/" dev=dm-2 ino=2 scontext=unconfined_u:system_r:syslogd_t:s0 tcontext=system_u:object_r:home_root_t:s0 tclass=dir
type=SYSCALL msg=audit(1349113476.272:1154): arch=c000003e syscall=2 success=no exit=-13 a0=7f9ef0c027f5 a1=0 a2=1b6 a3=0 items=0 ppid=9974 pid=9975 auid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=30 comm="rsyslogd" exe="/sbin/rsyslogd" subj=unconfined_u:system_r:syslogd_t:s0 key=(null)
  • 編輯 -

遇到了這篇文章,這就是我想要完成的事情。但是,當我查看允許的 sebool 參數列表時,唯一與 syslog 相關的是:syslogd_disable_trans(SELinux 服務保護),似乎我可以在/home/src/dir 上維護目前的 SELinux ’type’,但將 syslogd_disable_trans 上的 bool 設置為 false。我想知道是否有更好的方法?

由於我仍在學習 SELinux,我嘗試不實施自定義 SELinux 策略包,但在這種情況下,我似乎別無選擇。所以我遵循了這篇文章的原始答案,並且能夠讓 rsyslog 與 /home/src/web 配合得很好。

類型強制有助於防止程序訪問打算由另一個程序使用的文件。例如,預設情況下,Samba 無法讀取標有 httpd_sys_content_t 類型的文件,這些文件旨在供 Apache HTTP 伺服器使用。如果所需文件標有 public_content_t 或 public_content_rw_t 類型,則可以在 Apache HTTP Server、FTP、rsync 和 Samba 之間共享文件。

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Confined_Services/sect-Managing_Confined_Services-Configuration_examples-Sharing_files_between_services.html

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