我隐隐怀疑这与我对 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
。
我怎样才能发现为什么这不能正确记录?
答案1
事实证明,kauditd
!=auditd
和auditd
是 SELinux 用于登录的服务。
当systemctl start auditd
失败时,您可以查看/var/log/messages
。就我而言,我发现/var/log/audit/audit.log
(我删除和编辑的文件touch
)需要具有0600
权限(我认为它说的0640
也是可以的)。
这样做:
# chmod 600 /var/log/audit/audit.log
# systemctl start auditd
重新启用日志记录