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强制密码校验策略。
相关推荐
铁皮饭盒12 分钟前
网页端, 40mb离线模型, 自动抠图, 不用 Python,不用服务器,不用 API Key, 不用显卡
前端·javascript·后端
IT_陈寒25 分钟前
Redis并发写入踩坑记录:别让超时设置坑了你
前端·人工智能·后端
Bs_MoneyMagnet31 分钟前
基于springboot+vue的图书馆预约系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·毕业设计·图书管理系统·计算机毕业设计
console.log('npc')41 分钟前
03 — 核心框架:App 与中间件
后端·node.js·express
小蒜学长41 分钟前
基于小程序的绘画作品创作与分享社区系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·绘画作品·创作分享社区
江湖十年1 小时前
Go GOPROXY 兜底链的坑:从一次诡异的 CI lint 失败说起
后端·面试·go
考虑考虑8 小时前
docker compose V2版本新属性
运维·后端·自动化运维
GreenTea11 小时前
7000 万 QPS、500 PB:OpenAI 如何用一个 Python 存储平台撑住 10 亿用户
后端·架构
Flynt11 小时前
Java 27 升级实测:默认值动得比新特性多,有个老参数会让 JVM 直接起不来
java·jvm·后端
Bs_MoneyMagnet11 小时前
基于springboot+vue的个人健康管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·vue3·springboot3·计算机毕业设计