Mosquitto ACL 默认所有用户都读到某个主题

Mosquitto ACL 默认所有用户都读到某个主题

我正在尝试为所有用户创建默认访问权限,除非在 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'.

相关内容