sudo visudo -c 可递归验证 /etc/sudoers 及其包含的所有文件(如 /etc/sudoers.d/ 下的片段)语法是否合法;支持单独检查指定片段、静默模式(-q)用于脚本集成、严格模式(-s)提升兼容性校验。

直接运行 sudo visudo -c 即可检查 /etc/sudoers 文件及其包含的所有片段(如 /etc/sudoers.d/ 下的文件)是否语法合法。这是最常用、最稳妥的验证方式。
检查主配置及所有 included 文件
系统默认会递归检查:
- 主配置 /etc/sudoers
- 所有被 #include 或 #includedir 引用的文件,例如 /etc/sudoers.d/*
执行后若看到:
/etc/sudoers: parsed OK/etc/sudoers.d/myrule: parsed OK
说明整套 sudo 权限配置无语法问题。
单独验证某个 sudoers.d 片段
当新增或修改了 /etc/sudoers.d/ 下的某条规则(比如 myadmin),可针对性检查:
sudo visudo -c -f /etc/sudoers.d/myadmin- 避免因单个片段出错导致整个 sudo 失效
- 报错时会明确指出哪一行、什么问题,例如:
syntax error near line 3或unknown user 'bob'
静默检查与脚本集成
在自动化部署或 CI 流程中,常配合 -q(quiet)和返回值判断:
sudo visudo -cq && echo "OK" || echo "FAIL"- 成功时退出码为 0,失败为 1,不输出任何提示信息
- 适合写入 shell 脚本或 Ansible 的
command模块做前置校验
严格模式增强可靠性
启用 -s(strict)可触发更严格的解析规则,例如检测未定义别名、冗余空格、过时语法等:
sudo visudo -cs- 有助于提前发现潜在兼容性问题,尤其在升级 sudo 版本前后
- 某些发行版(如较新 Debian/Ubuntu)默认已启用部分 strict 行为


















