常用命令
acl load: 重新加载 acl 配置acl cat: 根据分类查看所有 acl 选项acl list: 查看所有用户的 acl 配置acl log: 查看被 acl 拒绝的操作日志
aclfile
aclfile /etc/redis/users.acl 将用户、密码、权限设置写在 /etc/redis/users.acl 文件里。
文件修改过后,需要登录 redis,auth 命令登录管理员账户,然后执行 acl load 命令加载 acl 配置。重启容器好像不管用。
用 sha256 存储用户密码
避免在配置文件里存储明文密码。#密码 表示 sha256 加密后的密码。例如 user adoyle on #sha256-encrypted-password。
No permissions to access a channel
Redis 7.0 起,acl-pubsub-default resetchannels 是默认选项。
acl list 可以看到用户的 acl 选项里多了一个 resetchannels,也就是说用户默认无法对 channel 进行 pub/sub 操作。
有 3 种解决方法:
- 在 acl 配置里加上
&*表示对所有 channel 都可以 pub/sub。比如user adoyle on #passwd &*。或者&chan对某个 channel 进行 pub/sub 操作。 比如user adoyle on #passwd &chan1 &chan2。 - 使用
auth setuser adoyle &chan命令对指定用户增加 acl 选项。 - 在配置文件里设置
acl-pubsub-default allchannels,这样所有用户默认都可以对 channel 进行 pub/sub 操作。