syncthing: create default group if not overridden
The following configuration generates a systemd unit that doesn't
start.
```nix
{
services.syncthing = {
enable = true;
user = "my-user";
};
}
```
It fails with
```
systemd[1]: Started Syncthing service.
systemd[6745]: syncthing.service: Failed to determine group credentials: No such process
systemd[6745]: syncthing.service: Failed at step GROUP spawning /nix/store/n1ydz3i08nqp1ajc50ycy1zribmphqc9-syncthing-1.1.4-bin/bin/syncthing: No such process
systemd[1]: syncthing.service: Main process exited, code=exited, status=216/GROUP
systemd[1]: syncthing.service: Failed with result 'exit-code'.
```
This is due to the fact that `syncthing` group (default) is not
created if the user is overridden.
Add a separate check for setting up the default group, so that
user/group are created independently.
This commit is contained in:
parent
aaf2ecd801
commit
e50539f7b5
@ -372,16 +372,18 @@ in {
|
||||
|
||||
systemd.packages = [ pkgs.syncthing ];
|
||||
|
||||
users = mkIf (cfg.systemService && cfg.user == defaultUser) {
|
||||
users."${defaultUser}" =
|
||||
users.users = mkIf (cfg.systemService && cfg.user == defaultUser) {
|
||||
"${defaultUser}" =
|
||||
{ group = cfg.group;
|
||||
home = cfg.dataDir;
|
||||
createHome = true;
|
||||
uid = config.ids.uids.syncthing;
|
||||
description = "Syncthing daemon user";
|
||||
};
|
||||
};
|
||||
|
||||
groups."${defaultUser}".gid =
|
||||
users.groups = mkIf (cfg.systemService && cfg.group == defaultUser) {
|
||||
"${defaultUser}".gid =
|
||||
config.ids.gids.syncthing;
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user