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.