
Defaults exempt_group 是 sudoers 中一个高级但极少被正确使用的安全控制机制,它的作用不是“绕过所有限制”,而是让指定组内的用户完全跳过某些默认策略(如密码要求、环境重置、日志记录等),但仍受其权限规则约束。它不赋予额外命令权限,只豁免策略执行层面的干预。
理解 exempt_group 的真实含义
该属性仅影响 Defaults 行定义的全局行为,例如:
• Defaults requiretty(强制 TTY)
• Defaults env_reset(重置环境变量)
• Defaults timestamp_timeout(密码缓存时间)
• Defaults log_output(命令输出日志)
但它不会跳过 /etc/sudoers 中的权限规则检查——用户仍必须被明确授权才能执行某条命令。
配置步骤:创建审计组并启用豁免
1. 创建专用审计组(如 auditadmin):sudo groupadd auditadminsudo usermod -aG auditadmin alice
2. 使用 visudo 安全编辑配置:sudo visudo -f /etc/sudoers.d/95-audit-exempt
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
3. 在文件中添加两段关键内容:
• 第一行定义豁免组:Defaults exempt_group="auditadmin"
• 第二行保留审计组的必要权限(示例):%auditadmin ALL=(ALL) NOPASSWD: /usr/bin/ausearch, /usr/bin/aureport, /bin/journalctl
典型适用场景与安全建议
• 合规审计终端:审计人员需频繁调用 ausearch 或 journald 查日志,但不应被 env_reset 清除审计工具所需的环境变量(如 AUDIT_LOG)
• 避免误触发 requiretty:自动化审计脚本常通过 SSH 非交互式执行,exempt_group 可让 auditadmin 用户跳过 TTY 强制检查
• 不推荐搭配 ALL 权限使用:若同时配 %auditadmin ALL=(ALL) NOPASSWD: ALL,则豁免失去意义且大幅扩大攻击面
• 必须配合显式命令白名单:豁免组用户依然只能执行 sudoers 中明确定义的命令,不可越权
验证与调试方法
• 检查当前用户是否在豁免组:groups 或 id -nG
• 查看生效的 Defaults 策略:sudo -l 输出中会显示 exempt_group=auditadmin(如果已加载)
• 测试环境变量是否未被重置:export MY_AUDIT_VAR=test; sudo printenv MY_AUDIT_VAR
若返回 test,说明 env_reset 已对 auditadmin 生效豁免










