nixos/mysql: add group option

This commit is contained in:
Aaron Andersen 2020-08-11 21:12:59 -04:00
parent 9b56677634
commit 3792fef4ec

View file

@ -59,6 +59,12 @@ in
description = "User account under which MySQL runs"; description = "User account under which MySQL runs";
}; };
group = mkOption {
type = types.str;
default = "mysql";
description = "Group under which MySQL runs.";
};
dataDir = mkOption { dataDir = mkOption {
type = types.path; type = types.path;
example = "/var/lib/mysql"; example = "/var/lib/mysql";
@ -319,21 +325,25 @@ in
}) })
]; ];
users.users.mysql = { users.users = optionalAttrs (cfg.user == "mysql") {
description = "MySQL server user"; mysql = {
group = "mysql"; description = "MySQL server user";
uid = config.ids.uids.mysql; group = cfg.group;
uid = config.ids.uids.mysql;
};
}; };
users.groups.mysql.gid = config.ids.gids.mysql; users.groups = optionalAttrs (cfg.group == "mysql") {
mysql.gid = config.ids.gids.mysql;
};
environment.systemPackages = [ cfg.package ]; environment.systemPackages = [ cfg.package ];
environment.etc."my.cnf".source = cfg.configFile; environment.etc."my.cnf".source = cfg.configFile;
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d '${cfg.dataDir}' 0700 ${cfg.user} mysql - -" "d '${cfg.dataDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
"z '${cfg.dataDir}' 0700 ${cfg.user} mysql - -" "z '${cfg.dataDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
]; ];
systemd.services.mysql = let systemd.services.mysql = let
@ -473,7 +483,7 @@ in
"+${setupScript}"; "+${setupScript}";
# User and group # User and group
User = cfg.user; User = cfg.user;
Group = "mysql"; Group = cfg.group;
# Runtime directory and mode # Runtime directory and mode
RuntimeDirectory = "mysqld"; RuntimeDirectory = "mysqld";
RuntimeDirectoryMode = "0755"; RuntimeDirectoryMode = "0755";