@@ -204,6 +204,16 @@ let
204204 '';
205205 };
206206
207+ autoSubUidGidRange = mkOption {
208+ type = types.bool;
209+ default = false;
210+ example = true;
211+ description = ''
212+ Automatically allocate subordinate user and group ids for this user.
213+ Allocated range is currently always of size 65536.
214+ '';
215+ };
216+
207217 createHome = mkOption {
208218 type = types.bool;
209219 default = false;
@@ -320,6 +330,9 @@ let
320330 (mkIf (!cfg.mutableUsers && config.initialHashedPassword != null) {
321331 hashedPassword = mkDefault config.initialHashedPassword;
322332 })
333+ (mkIf (config.isNormalUser && config.subUidRanges == [] && config.subGidRanges == []) {
334+ autoSubUidGidRange = mkDefault true;
335+ })
323336 ];
324337
325338 };
@@ -419,7 +432,7 @@ let
419432 { inherit (u)
420433 name uid group description home createHome isSystemUser
421434 password passwordFile hashedPassword
422− isNormalUser subUidRanges subGidRanges
435+ autoSubUidGidRange subUidRanges subGidRanges
423436 initialPassword initialHashedPassword;
424437 shell = utils.toShellPath u.shell;
425438 }) cfg.users;