Linux审计账户应严格限制为只读权限,仅允许执行ps、ls、journalctl等指定命令查看日志与状态,禁用密码登录、交互式shell及写入权限,并通过sudoers、ACL和auditd持续管控与验证。

Linux系统审计员账户应严格限制为只读权限,避免误操作或越权行为影响系统稳定性与合规性。核心原则是:不赋予任何写入、执行、修改配置或重启服务的权限,仅允许查看日志、进程、用户、服务状态等审计所需信息。
一、创建专用审计账户并禁用登录密码
使用adduser命令新建独立账户(如auditor),并立即禁用其密码登录能力,强制通过SSH密钥认证:
- sudo adduser --disabled-password --gecos "Audit Account" auditor
- sudo mkdir -p /home/auditor/.ssh,将审计员公钥写入/home/auditor/.ssh/authorized_keys
- sudo chown -R auditor:auditor /home/auditor/.ssh,chmod 700 /home/auditor/.ssh,chmod 600 /home/auditor/.ssh/authorized_keys
二、通过sudoers精确控制可执行命令
编辑/etc/sudoers(用visudo):禁止shell访问,仅放行明确审计所需的只读命令:
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 添加行:auditor ALL=(ALL) NOPASSWD: /bin/ps, /bin/ls, /usr/bin/find, /usr/bin/journalctl, /bin/systemctl status *, /usr/bin/dmesg, /bin/cat /var/log/**/*.log, /bin/tail -n *, /usr/bin/last, /usr/bin/who, /bin/df, /bin/free, /usr/bin/top -b -n1
- 关键限制:禁止通配符执行(如 !/bin/sh, !/bin/bash, !/usr/bin/sudo su);禁用 sudo -i、sudo -s
- 建议启用日志记录:Defaults:auditor logfile="/var/log/sudo-audit.log"
三、限制文件系统访问范围
审计账户不应遍历全系统。可通过以下方式缩小可见路径:
- 设置HOME目录为只读挂载(如用mount --bind + ro),或使用chroot环境(适用于高敏感场景)
- 对敏感目录(如/etc/shadow、/root、/var/lib/docker)确保权限为600或700,且auditor不在对应组中
- 用setfacl显式拒绝写权限:sudo setfacl -m u:auditor:-w /etc /var/spool/cron /boot
四、审计会话行为与定期验证
只读权限需持续验证有效性,防止配置漂移或提权漏洞利用:
- 启用auditd规则监控auditor账户的异常行为:-a always,exit -F uid=100X -F perm=x -k audit-exec(X为实际UID)
- 每月运行检查脚本:确认sudo -l -U auditor输出无意外命令;getent group | grep auditor确认未加入sudo、adm、docker等特权组
- 禁止交互式shell:在/etc/passwd中将auditor的shell设为/usr/sbin/nologin或/bin/false

















