我有一个偷偷摸摸的怀疑,这与我在我的 rsyslog.conf 中胡闹有关,但我对此不是 100% 确定的。
我正在运行 Centos 7,SELinux 一直在正常工作。但是,我尝试按照这些说明进行操作,SELinux 没有否认。
我做了以下事情:
useradd fnord
echo "fnord:user_u:s0-s0:c0.c1023" >> /etc/selinux/targeted/seusers
setsebool user_exec_content off
sudo su - fnord
cp /bin/ls /tmp
/tmp/ls
该/tmp/ls
命令工作得很好。我尝试了使用和不使用-P
标志,但这没有任何区别。
我正在尝试触发一些 SELinux 日志消息,因为/var/audit/audit.log
无论我做什么都是空的。我知道 SELinux 正在强制执行,因为 rsyslog 设置为将某些日志发送到/company/var/log/
,但这些日志不会被写入。如果我将 SELinux 更改为许可而不是强制执行,它们确实会被写入。但是没有任何东西可以写/var/audit/audit.log
了。它肯定曾经 - 我有audit.log.1
和其他翻转的文件。
我最初认为它可能是/etc/rsyslog.d/listen.conf
,我已经将内容从更改为$SystemLogSocketName /run/systemd/journal/syslog
,$SystemLogSocketName /dev/log
但我已经将其更改回来并重新启动了 rsyslog。仍然没有出现在audit.log
.
我怎样才能发现为什么这不能正确记录?
事实证明,
kauditd
!=auditd
和auditd
是 SELinux 用来登录的服务。失败时
systemctl start auditd
可以查看/var/log/messages
。就我而言,我发现/var/log/audit/audit.log
(我删除和touch
编辑的文件)需要具有0600
权限(我认为它说0640
也可以)。这样做:
重新启用日志记录