sudo免密权限配置不生效

1. 故障现象

用户oneslide已在/etc/sudoers写入免密规则oneslide ALL=(ALL:ALL) NOPASSWD: ALL,执行sudo命令仍要求输入密码。

2. 诊断过程

  1. 执行权限校验命令:sudo -l -U oneslide

  2. 输出存在两条匹配规则:

    sql 复制代码
    (ALL : ALL) ALL
    (ALL : ALL) NOPASSWD: ALL
  3. 根因:oneslide归属sudo用户组,配置中%sudo ALL=(ALL:ALL) ALL行位于用户免密行上方;sudo规则遵循从上至下匹配,最后一条生效,原顺序组规则覆盖免密配置。

3. 修复操作

  1. 执行visudo编辑sudoers,调整规则顺序,将用户免密行移至sudo组规则下方:

    sudoers 复制代码
    %sudo	ALL=(ALL:ALL) ALL
    oneslide ALL=(ALL:ALL) NOPASSWD: ALL
  2. 语法校验:visudo -c,无语法报错。

  3. 清空sudo认证缓存:sudo -k

4. 验证结果

  1. 权限查询输出顺序更新,免密规则为最后匹配项:

    sql 复制代码
    User oneslide may run the following commands on oneslide-VMware-Virtual-Platform:
        (ALL : ALL) ALL
        (ALL : ALL) NOPASSWD: ALL
  2. 切换oneslide用户执行sudo ls /root,无需输入密码,故障解决。

5. 关键原理

sudo多规则匹配逻辑:同一用户命中多条权限时,文件内靠后的规则优先级更高;用户专属权限配置需放置于用户组通用权限下方,确保免密规则覆盖组默认密码校验规则。

6. 附属排查要点

  1. 检查/etc/sudoers.d/目录,无冲突权限子配置;
  2. 配置文件权限保持440,无权限异常干扰;
  3. 无PAM/SELinux强制密码校验策略。
相关推荐
有梦不弃6 小时前
模块化单体架构设计方案:DDD + 六边形架构落地实践
后端·架构
江南十四行11 小时前
Spring框架核心(上)——IoC控制反转与DI依赖注入详解
java·后端·spring
IT_陈寒11 小时前
Redis缓存击穿把我坑惨了,原来这样设过期时间才靠谱
前端·人工智能·后端
妙码生花12 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(五十二):管理员权限检查中间件,AI 随意放行预闯大祸
前端·后端·go
创安电气研究所12 小时前
用 Node.js 将变频器运行数据接入 MQTT
后端
董员外12 小时前
RAG 系统进化论(八):Agentic RAG(智能体式 RAG),从回答问题到完成任务
人工智能·后端·设计模式
大勇前进12 小时前
告别 div 满天飞,HTML5 语义化标签真的有必要用吗?
后端
小满zs13 小时前
Go语言第六章(结构体)
后端·go
属于自己的天空13 小时前
每天省去重复 Prompt:我用 Skills 把 CRUD 生成标准化了
前端·后端