Redis权限管理体系(三): ACL 配置持久化
创始人
2025-07-10 15:01:19
0

前面我们已经了解了ACL用户管理的用途及使用:

但因默认配置中ACL的配置未持久化,因此Redis重启后对应的用户(default用户除外)将丢失,因此建议开启ACL配置的持久化。而ACL的持久化有两种方式,以下分别演示。

一、配置前准备工作

重启Redis服务

127.0.0.1:6479> shutdown
not connected>

再次启动Redis并登录,查看default用户权限

127.0.0.1:6479> ACL LIST
1) "user default on #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
127.0.0.1:6479>

图片

二、在服务层配置文件中配置ACL

1、关闭Redis服务

127.0.0.1:6479> shutdown
not connected>

2、在配置文件中添加default用户的配置

图片

登录Redis查看

127.0.0.1:6479> ACL LIST
1) "user default on #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"

3、添加新用户

1) "user default on #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
127.0.0.1:6479> ACL SETUSER user1 on >pwd_test1 allkeys +@all 
OK
127.0.0.1:6479> ACL LIST
1) "user default on #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
2) "user user1 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"
此时如果想保存配置,不能使用ACL SAVE命令处理。
(error) ERR This Redis instance is not configured to use an ACL file. You may want to specify users via the ACL SETUSER command and then issue a CONFIG REWRITE (assuming you have a Redis configuration file set) in order to store users in the Redis configuration.

图片

需要手动将用户信息添加在配置文件中。

也不能直接从Redis配置文件中加载配置。

127.0.0.1:6479> ACL LOAD
(error) ERR This Redis instance is not configured to use an ACL file. You may want to specify users via the ACL SETUSER command and then issue a CONFIG REWRITE (assuming you have a Redis configuration file set) in order to store users in the Redis configuration.

图片

不过可以使用config rewrite保存到配置文件。

127.0.0.1:6479> ACL SETUSER user2 on >pwd_test1 allkeys +@all
OK
127.0.0.1:6479> CONFIG REWRITE

图片

三、配置单独的ACL文件

1、修改配置

为了方便管理,建议单独使用ACL配置文件来管理用户信息。另外,不可以同时使用服务端配置文件与单独的配置文件共存的方式来配置,否则启动时会报错。

# Configuring Redis with users defined in redis.conf and at the same setting an ACL file path is invalid. This setup is very likely to lead to configuration errors and security holes, please define either an ACL file or declare users directly in your redis.conf, but not both.

因此,需要注释掉原先的方式,只添加aclfile的配置。

图片

图片

并且在users.acl中将之前的用户信息复制进去。

图片

再次启动Redis服务。

登录后再次查看,相关用户已存在。

127.0.0.1:6479> ACL LIST
1) "user default on sanitize-payload #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
2) "user user1 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"
3) "user user2 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"
127.0.0.1:6479>

图片

2、创建新用户

127.0.0.1:6479> ACL SETUSER u1 on >pwd_u1 allkeys +@write +@read 
OK
127.0.0.1:6479> ACL LIST
1) "user default on sanitize-payload #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
2) "user u1 on #21a1bbcd2c36cb07cd8779b3cba6ab183ecfd8b2a86e11f6dc1f674b90634544 ~* &* -@all +@write +@read"
3) "user user1 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"
4) "user user2 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"

保存配置。

127.0.0.1:6479> ACL SAVE
OK

3、直接在配置文件中添加用户

可以直接在用户配置配件中添加用户信息,再通过加载的方式加载用户。

图片

再次登录Redis中通过ACL LOAD加载配置后查看。

127.0.0.1:6479> ACL LOAD
OK
127.0.0.1:6479> ACL LIST
1) "user default on sanitize-payload #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
2) "user u1 on #21a1bbcd2c36cb07cd8779b3cba6ab183ecfd8b2a86e11f6dc1f674b90634544 ~* &* -@all +@write +@read"
3) "user u2 on #21a1bbcd2c36cb07cd8779b3cba6ab183ecfd8b2a86e11f6dc1f674b90634544 ~* &* -@all +@write +@read"
4) "user user1 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"
5) "user user2 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"

图片

这样每次用户操作后使用ACL SAVE保存操作,使用ACL LOAD加载配置即可。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...