Merge pull request #259937 from charmoniumQ/patch-1

nixos/mosquitto: fix ACL permissions
This commit is contained in:
pennae 2024-02-26 22:58:40 +01:00 committed by GitHub
commit 13aff9b34c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -177,17 +177,6 @@ let
''
++ hashedLines));
makeACLFile = idx: users: supplement:
pkgs.writeText "mosquitto-acl-${toString idx}.conf"
(concatStringsSep
"\n"
(flatten [
supplement
(mapAttrsToList
(n: u: [ "user ${n}" ] ++ map (t: "topic ${t}") u.acl)
users)
]));
authPluginOptions = with types; submodule {
options = {
plugin = mkOption {
@ -342,7 +331,7 @@ let
formatListener = idx: listener:
[
"listener ${toString listener.port} ${toString listener.address}"
"acl_file ${makeACLFile idx listener.users listener.acl}"
"acl_file /etc/mosquitto/mosquitto-acl-${toString idx}.conf"
]
++ optional (! listener.omitPasswordAuth) "password_file ${cfg.dataDir}/passwd-${toString idx}"
++ formatFreeform {} listener.settings
@ -698,6 +687,27 @@ in
cfg.listeners);
};
environment.etc = listToAttrs (
imap0
(idx: listener: {
name = "mosquitto/mosquitto-acl-${toString idx}.conf";
value = {
user = config.users.users.mosquitto.name;
group = config.users.users.mosquitto.group;
mode = "0400";
text = (concatStringsSep
"\n"
(flatten [
listener.acl
(mapAttrsToList
(n: u: [ "user ${n}" ] ++ map (t: "topic ${t}") u.acl)
listener.users)
]));
};
})
cfg.listeners
);
users.users.mosquitto = {
description = "Mosquitto MQTT Broker Daemon owner";
group = "mosquitto";