我无法让 rsyslog 写入位于 /var/log 以外的目录中的日志文件。
服务器是 RHELS 5.6 并且大部分具有默认配置。除了 rsyslog 特定的更改(添加到 iptables 的规则等)
如果我在 /etc/rsyslog.conf 中指定以下内容,它会起作用:
local6.* /var/log/MyLog.log
但是,如果我在 /Testing/MyLog.log 位置创建日志文件,chmod -R 777 在其上创建日志文件,然后将配置更新为:
local6.* /Testing/MyLog.log
我很困惑,因为我将 /Testing/MyLog.log(和目录)与 chown 和 chmod 设置为具有与日志 /var/log/MyLog.log 相同的用户:组和权限(根据 ls -la 的输出)。
我究竟做错了什么?这甚至可能吗?我什至尝试在 /var/log 中创建符号链接,但我尝试过的任何内容似乎都不起作用。我玩过 rsyslog 网站上记录的各种配置选项。
SELinux 将阻止标记syslogd_t
为的进程写入(可能)标记为 的文件default_t
。您需要使用syslogd_t
可以写入的内容标记文件。中的文件/var/log
大多被标记为var_log_t
,一种类型syslogd_t
肯定可以写入。
你应该不只是重新标记中的文件/Testing
来var_log_t
,因为一个绑定在某个时候突破,当有人执行在下次启动时或运行的autorelabel restorecon -FvR /
。
相反,编写一个小策略,自动且一致地将您的文件标记为/Testing
. 一些让你开始的东西。您的策略文件可能类似于:
/Testing(/.*)? -- gen_context(system_u:object_r:var_log_t)
Run Code Online (Sandbox Code Playgroud)
然而,SELinux 策略的编写有点棘手。这就是为什么你应该把东西放在那些东西的默认位置。
但是,我个人觉得日志记录真的应该进入/var/log
. 它的存在是有原因的。不管你认为你写信的理由有多好/Testing
,写信给类似的东西可能会更好/var/log/testing
。
编辑:不,不,不,不,不。那不行。那是愚蠢的。您不想编写允许写入的策略,因为默认策略已允许syslogd_t
写入var_log_t
。您需要编写文件上下文规则(.fc 文件),就像我上面的新片段一样,标记/Testing
为var_log_t
好像您必须...
归档时间: |
|
查看次数: |
11708 次 |
最近记录: |