要限制普通用户对系统日志的修改权限,可以通过以下几种方法实现:
# 设置日志目录权限
sudo chmod 750 /var/log
sudo chown root:root /var/log
# 设置重要日志文件权限
sudo chmod 640 /var/log/messages
sudo chmod 640 /var/log/secure
sudo chmod 640 /var/log/audit/audit.log
# 安装ACL工具
sudo yum install -y acl
# 设置ACL权限
sudo setfacl -Rm u:root:rwx /var/log
sudo setfacl -Rm d:u:root:rwx /var/log
sudo setfacl -Rm g:root:rx /var/log
sudo setfacl -Rm d:g:root:rx /var/log
# 检查当前SELinux状态
sudo getenforce
# 如果未启用,启用SELinux
sudo setenforce 1
# 设置SELinux上下文
sudo chcon -t var_log_t /var/log
sudo restorecon -Rv /var/log
# 安装auditd
sudo yum install -y audit
# 配置审计规则
sudo echo "-w /var/log -p wa -k logs" >> /etc/audit/rules.d/audit.rules
sudo systemctl restart auditd
编辑sudoers文件(visudo
),确保普通用户没有以下权限:
- 没有对日志文件的写权限
- 没有使用journalctl的--flush或--rotate选项
- 没有使用logrotate的强制执行权限
编辑/etc/logrotate.conf
,确保配置中包含:
create 0640 root root
# 检查日志目录权限
ls -ld /var/log
# 检查重要日志文件权限
ls -l /var/log/messages /var/log/secure /var/log/audit/audit.log
# 检查SELinux上下文
ls -Z /var/log
# 检查auditd规则
sudo auditctl -l | grep /var/log
这些设置将确保只有root用户和特定系统进程能够修改系统日志,同时允许普通用户读取日志内容(如有需要)。