nixos/users-groups: don't default users.users.<name>.group to nogroup

this is unsafe, as many distinct services may be running as the same
nogroup group.

Changed files
+11 -1
nixos
modules
+11 -1
nixos/modules/config/users-groups.nix
···
group = mkOption {
type = types.str;
apply = x: assert (builtins.stringLength x < 32 || abort "Group name '${x}' is longer than 31 characters which is not allowed!"); x;
-
default = "nogroup";
+
default = "";
description = "The user's primary group.";
};
···
in xor isEffectivelySystemUser user.isNormalUser;
message = ''
Exactly one of users.users.${user.name}.isSystemUser and users.users.${user.name}.isNormalUser must be set.
+
'';
+
}
+
{
+
assertion = user.group != "";
+
message = ''
+
users.users.${user.name}.group is unset. This used to default to
+
nogroup, but this is unsafe. For example you can create a group
+
for this user with:
+
users.users.${user.name}.group = "${user.name}";
+
users.groups.${user.name} = {};
'';
}
]