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强制密码校验策略。
相关推荐
mCell13 分钟前
你以为短链接只是 Hash + 301/302?
后端·算法·架构
咖啡八杯38 分钟前
GoF设计模式——迭代器模式
java·后端·设计模式·迭代器模式
IT_陈寒4 小时前
SpringBoot自动配置不是你以为的那样的智能
前端·人工智能·后端
程序员张36 小时前
SpringBoot集成BCrypt密码加密库
java·spring boot·后端
CaffeinePro6 小时前
FastAPI数据库集成SQLAlchemy异步ORM全方案
后端·fastapi
小旭Coding6 小时前
凌晨告警轰炸!Go 服务协程只增不减,内存持续暴涨直至 OOM
后端
半个落月6 小时前
用 LangChain.js 手写一个能读写文件和执行命令的 Mini Cursor
javascript·人工智能·后端
952367 小时前
RabbitMQ-基础操作
java·spring boot·分布式·后端·spring·rabbitmq
柒和远方7 小时前
从审计日志到可下载证据包:事务型 Outbox、租约 fencing 与保留水位
前端·后端·架构
geovindu9 小时前
CSharp: Prototype Pattern
开发语言·后端·设计模式·.net·原型模式·创建型模式