redis 多密码问题

Redis 7.x 通过 acl setuser 可以给同一个用户设置多个密码,所有密码均会生效。

  • 故障场景:每次执行 acl setuser default on >password 就会为 default 用户追加一个新密码,而非覆盖原有密码,任一密码认证成功即可登录。
acl setuser default on >Aa123456 ~* &* +@all
  • 模拟场景:先设置第一个密码,再追加第二个密码
127.0.0.1:7100> acl setuser default on >pass1 ~* &* +@all
OK
127.0.0.1:7100> acl setuser default on >pass2 ~* &* +@all
OK
  • 验证登录:使用2个密码均可以正常登录,执行 acl list 可以看到 default 用户有2个加密后的密码串
127.0.0.1:7100> auth "pass1"
OK
127.0.0.1:7100> auth "pass2" 
OK
127.0.0.1:7100> acl list
1) "user default on #764c5d303586dbb98f1e6d69567adaef5ab70b52f674c7ede90649a2adcfe711 #c4318372f98f4c46ed3a32c16ee4d7a76c832886d887631c0294b3314f34edf1 ~* &* +@all"
  • 后续建议:若要更新密码,先通过 acl setuser 的 resetpass 清空历史密码,再设置新密码,参考如下:
127.0.0.1:7100> acl setuser default resetpass
OK
127.0.0.1:7100> acl setuser default on >new_password ~* &* +@all
OK
127.0.0.1:7100> auth "pass1"
(error) WRONGPASS invalid username-password pair or user is disabled.
127.0.0.1:7100> auth "new_password"
OK
Copyright © www.sqlfans.cn 2021 - 2026 All Right Reserved更新时间: 2026-08-06 09:41:59

results matching ""

    No results matching ""