nixos/redis: add option services.redis.servers.*.group
previously if you set the "user" option and did not create a group account with the same name the module would create a service that would fail to start. with this change: - the module is more explicit about this behaviour - you can configure the group directly, so that you're not forced to a particular user/group structure - you can read the group name used by the redis service. this is useful for giving other services permission to use the redis socket.
This commit is contained in:
@@ -72,7 +72,28 @@ in {
|
||||
defaultText = literalExpression ''
|
||||
if name == "" then "redis" else "redis-''${name}"
|
||||
'';
|
||||
description = "The username and groupname for redis-server.";
|
||||
description = ''
|
||||
User account under which this instance of redis-server runs.
|
||||
|
||||
::: {.note}
|
||||
If left as the default value this user will automatically be
|
||||
created on system activation, otherwise you are responsible for
|
||||
ensuring the user exists before the redis service starts.
|
||||
'';
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = config.user;
|
||||
defaultText = literalExpression "config.user";
|
||||
description = ''
|
||||
Group account under which this instance of redis-server runs.
|
||||
|
||||
::: {.note}
|
||||
If left as the default value this group will automatically be
|
||||
created on system activation, otherwise you are responsible for
|
||||
ensuring the group exists before the redis service starts.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
@@ -337,7 +358,7 @@ in {
|
||||
redisConfStore = redisConfig conf.settings;
|
||||
in ''
|
||||
touch "${redisConfVar}" "${redisConfRun}"
|
||||
chown '${conf.user}' "${redisConfVar}" "${redisConfRun}"
|
||||
chown '${conf.user}':'${conf.group}' "${redisConfVar}" "${redisConfRun}"
|
||||
chmod 0600 "${redisConfVar}" "${redisConfRun}"
|
||||
if [ ! -s ${redisConfVar} ]; then
|
||||
echo 'include "${redisConfRun}"' > "${redisConfVar}"
|
||||
@@ -353,7 +374,7 @@ in {
|
||||
Type = "notify";
|
||||
# User and group
|
||||
User = conf.user;
|
||||
Group = conf.user;
|
||||
Group = conf.group;
|
||||
# Runtime directory and mode
|
||||
RuntimeDirectory = redisName name;
|
||||
RuntimeDirectoryMode = "0750";
|
||||
|
||||
Reference in New Issue
Block a user