默认行为是将 authpriv. 日志写入 /var/log/secure,关键规则为 authpriv. /var/log/secure,需确保该行存在于 /etc/rsyslog.conf 或 /etc/rsyslog.d/ 配置文件中,且未被 auth,authpriv.* /var/log/auth.log 等规则覆盖。

Linux 中让 rsyslog 将验证类日志(如 SSH 登录、su 切换、sudo 授权、用户认证等)单独写入 /var/log/secure,是默认行为,但需确认配置未被覆盖或误删。关键在于正确匹配 authpriv 设施(facility)并指定目标文件路径。
核心要点:authpriv.* /var/log/secure 这一行规则必须存在且生效,它专用于记录所有私有认证相关日志。
✅ 确保 authpriv 日志被正确路由到 /var/log/secure
打开主配置文件:
sudo nano /etc/rsyslog.conf
查找或添加以下规则(通常位于文件中段,靠近其他基础日志规则处):
authpriv.* /var/log/secure
说明:
-
authpriv是设施名,专指敏感认证操作(SSH、sudo、su、pam 等) -
*表示所有优先级(debug 到 emerg) -
/var/log/secure是标准路径,多数发行版(RHEL/CentOS/Fedora)默认使用;Debian/Ubuntu 也兼容此路径,但部分版本可能用/var/log/auth.log(见下文兼容说明)
⚠️ 注意:不要写成
auth.*——auth设施已基本弃用,authpriv才是现代系统中实际承载 SSH、sudo 等日志的设施。
✅ 检查日志文件权限与目录结构
确保目标路径可写:
sudo mkdir -p /var/log sudo touch /var/log/secure sudo chown syslog:adm /var/log/secure sudo chmod 640 /var/log/secure
大多数系统中
rsyslog进程以syslog用户运行,属组为adm,因此需保证该组有读写权限。
✅ 验证配置语法并重启服务
检查配置是否合法:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
sudo rsyslogd -N1
输出 rsyslogd: configuration OK 表示无误。
重启服务使生效:
sudo systemctl restart rsyslog
✅ 验证日志是否真实写入
触发一条 authpriv 日志(例如 SSH 登录本机或执行 sudo):
sudo ls /root 2>/dev/null || true
然后查看:
sudo tail -n 3 /var/log/secure
应看到类似:
Jul 29 19:15:22 hostname sudo: user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/bin/ls /root
? Debian/Ubuntu 用户注意:auth.log 优先级更高?
Debian 系衍生系统(Ubuntu)默认将 authpriv 日志写入 /var/log/auth.log,而非 /var/log/secure。其 /etc/rsyslog.d/50-default.conf 中通常含:
auth,authpriv.* /var/log/auth.log
若你希望统一用 /var/log/secure,可:
- 注释掉
auth,authpriv.* /var/log/auth.log - 显式添加
authpriv.* /var/log/secure - 确保该行在
50-default.conf或/etc/rsyslog.d/下其他.conf文件中靠前(rsyslog 按文件字典序加载,.conf名越小越先读)
不复杂但容易忽略。










