我目前已启用 SELinux,并能够使用chcon
授予“httpd_sys_content_t”类型的命令配置 apache 以允许访问 /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 服务保护),似乎我可以在目录上维护当前的 SELinux“类型” /home/src/
,但将 syslogd_disable_trans 上的 bool 设置为 false。我想知道是否有更好的方法?
答案1
由于我仍在学习 SELinux,我尝试不实现自定义 SELinux 策略包,但在这种情况下,我似乎别无选择。所以我遵循了这个问题的原始答案邮政,并且能够让 rsyslog 与 /home/src/web 顺利配合使用。
答案2
类型强制有助于防止进程访问供其他进程使用的文件。例如,默认情况下,Samba 无法读取标有 httpd_sys_content_t 类型的文件,这些文件供 Apache HTTP Server 使用。如果所需文件标有 public_content_t 或 public_content_rw_t 类型,则可以在 Apache HTTP Server、FTP、rsync 和 Samba 之间共享文件。