Linux
SELinux - 允許多個服務訪問同一個 /home/dir
我目前啟用了 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 之間共享文件。