我正在尝试为所有用户创建默认访问权限,除非在 ACL 文件中指定。
我将 allow_anonymous 设置为 false。但是,如果用户在密码文件中,我希望该用户只能对特定主题具有读取权限。如果我在 ACL 文件中定义了用户规则,我希望使用该规则。我希望这样做,这样我创建的任何新密码都将具有默认访问权限。这样,我就不必为创建的每个新密码在 ACL 文件中添加条目。
基本上是这样的:
user * (wildcard, all users)
topic read some_topic
(and then I create rules if needed)
user admin1
topic readwrite #
user user1
topic read temps
答案1
遇到了同样的问题,似乎如果你在 acl 中定义一个用户部分,默认 acl 就会被覆盖。对我有用的是使用关键字pattern
而不是topic
(此处描述mosquitto.conf 手册页 acl 部分)
因此您的示例 acl 看起来将如下所示:
# All users
pattern read some_topic
user admin1
topic readwrite #
user user1
topic read temps
编辑:请注意,在我的情况下,这种方法会产生以下警告
Warning: ACL pattern 'some_topic' does not contain '%c' or '%u'.