审计员账户在linux中应设为只读,禁用交互式shell(如/usr/sbin/nologin),通过sudo白名单限制命令,挂载关键路径为只读,并强化日志与auditd审计。

审计员账户在Linux系统中应严格限制为只读权限,避免误操作或越权行为影响系统安全与稳定性。核心思路是:禁止写入、禁用交互式shell、限制命令执行范围、隔离敏感路径,并通过sudo策略精细控制可查看内容。
禁用交互式Shell,强制使用受限环境
将审计员账户的登录shell设为/bin/true或/usr/sbin/nologin,彻底阻止交互式登录。若需临时排查,可通过sudo -u audituser bash -c 'command'方式以非交互方式执行预授权命令。
- 修改/etc/passwd:将audituser:x:1002:1002::/home/audituser:/bin/bash:/bin/bash改为audituser:x:1002:1002::/home/audituser:/home/audituser:/usr/sbin/nologin
- 确保/home/audituser目录属主为root,权限设为750,禁止审计员写入自身家目录
基于sudo配置最小化只读命令白名单
不赋予ALL权限,仅允许明确列出的只读命令,并禁用参数绕过(如sudo cat /etc/shadow必须被拒绝)。使用sudoers.d独立文件管理更清晰。
- 创建/etc/sudoers.d/audit_readonly,添加:
- Cmnd_Alias AUDIT_CMD = /bin/cat, /usr/bin/tail, /usr/bin/head, /bin/ls, /usr/bin/find, /bin/ps, /usr/bin/systemctl status, /usr/bin/journalctl -u *, /usr/bin/dmesg
- audituser ALL=(root) NOPASSWD: AUDIT_CMD
- 关键加固:在Defaults行中加入env_reset, noexec, requiretty,防止LD_PRELOAD等绕过手段
文件系统级只读挂载与路径屏蔽
对审计员常用但高风险路径(如/etc、/var/log)启用bind mount只读,同时隐藏敏感子目录(如/etc/shadow、/root)。
- 执行:mount --bind /etc /etc_ro && mount -o remount,ro /etc_ro,再将/etc_ro软链至审计员可访问路径
- 使用mount --bind /dev/null /etc/shadow(需在chroot或容器中谨慎使用),或直接设置chmod 000 /etc/shadow并确保audituser不在root组
- 配合/etc/fstab持久化只读挂载,避免重启失效
日志与会话审计强化
审计员的所有操作本身必须可追溯。启用sudo日志、bash history重定向、以及auditd规则监控关键读取行为。
- 在/etc/sudoers中确保Defaults logfile="/var/log/sudo.log"开启
- 为audituser设置HISTFILE=/dev/null和HISTCONTROL=ignorespace,防止本地命令历史残留;所有有效命令均应经sudo触发并落日志
- 添加auditd规则:-w /etc/passwd -p r -k audit_read_passwd,实现对敏感文件读取的内核级记录










