You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis配置ACL文件后默认用户nopass异常及ACL持久化问题

Redis默认用户变为nopass的原因及解决办法

核心原因

Redis的ACL文件配置优先级高于redis.conf中的requirepass。当你配置aclfile并重启服务后,Redis会优先加载ACL文件里的用户规则,完全覆盖redis.conf中关于用户权限的兼容配置(包括requirepass)。

你第一次执行acl save生成ACL文件时,当前Redis实例中的默认用户(default)已经被设置为nopass状态,这个配置被写入了ACL文件。重启后Redis加载该文件,就会导致default用户无需认证,同时requirepass admin的配置被忽略。

为什么default用户会变成nopass?

  • 当你未配置ACL文件时,requirepass admin等价于给default用户设置密码(acl setuser default on >admin)。但创建新ACL用户后,若操作中不小心修改了default用户的权限(比如执行过acl setuser default nopass),或者Redis在ACL初始化过程中默认用户的状态被重置,执行acl save就会把当前的nopass状态写入文件。
  • 第一次生成ACL文件时,如果没有显式维护default用户的密码规则,Redis会将当前内存中的用户状态直接持久化,包括nopass配置。

解决步骤

  1. 直接连接Redis CLI(当前无需认证),执行命令重置default用户的密码:
    acl setuser default on >admin
    
  2. 执行acl save将更新后的用户规则写入ACL文件:
    acl save
    
  3. 重启Redis服务,此时default用户会重新要求认证,auth admin可正常使用。

后续建议统一通过ACL规则管理用户权限,redis.conf中的requirepass可以保留作为兼容配置,但优先以ACL文件中的规则为准。

内容的提问来源于stack exchange,提问作者Ankit Sahay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:33:22