Describe the bug
A user with the ACL permission +@all is not allowed to execute most non-admin related commands.
To reproduce
root@redis-0:/data# redis-cli -h localhost
localhost:6379> auth RedisAdmin <password>
OK
localhost:6379> acl list
1) "user default off nopass sanitize-payload ~* &* +@all"
2) "user RedisAdmin on <password> &* +@all"
localhost:6379> acl whoami
"RedisAdmin"
localhost:6379> set testKey someValue
(error) NOPERM this user has no permissions to access one of the keys used as arguments
localhost:6379> lpush arrKey value1 value2
(error) NOPERM this user has no permissions to access one of the keys used as arguments
localhost:6379> acl whoami
"RedisAdmin"
localhost:6379> acl setuser RedisAdmin +get +@set
OK
localhost:6379> acl list
1) "user default off nopass sanitize-payload ~* &* +@all"
2) "user RedisAdmin on <password> &* +@all"
Expected behavior
A user with the +@all permission should be able to execute all commands.
Additional information
Server running in docker container with image redis:6.2.5-buster
Since +@all is supposed to already contain all permissions, individual permissions cannot be added to the user.
This also affects any user that uses +@all as a base. i.e. +@all -@admin
Comment From: oranagra
@xevantus look carefully at the error you get. it says you don't have permissions to access the keys (e.g. testKey).
notice that the default user has ~* but the other user doesn't.
p.s. i've just tested it in unstable and it works nicely.