nixos: define user limits

This commit is contained in:
2026-04-18 18:36:48 -04:00
parent a55f91f316
commit c161a0a3d2
+43 -12
View File
@@ -1,7 +1,23 @@
{ pkgs, ... }: { lib, ... }:
{
users.users =
let let
users = [
{
name = "error";
options.admin = true;
}
{
name = "javalsai";
options.admin = true;
}
{
name = "max";
options.admin = true;
}
{
name = "vectorum";
}
];
adminGroups = [ adminGroups = [
"adm" "adm"
"named" "named"
@@ -10,18 +26,33 @@
"tuxcord" "tuxcord"
"wheel" "wheel"
]; ];
in
{ mkUser = name: uid: options: {
error = { users.users.${name} = {
isNormalUser = true; isNormalUser = true;
shell = pkgs.fish; extraGroups = lib.optionals (options.admin or false) adminGroups;
extraGroups = adminGroups; inherit uid;
}; };
javalsai = { systemd.slices."user-${builtins.toString uid}".sliceConfig = {
isNormalUser = true; CPUQuota = "50%";
shell = pkgs.zsh; CPUWeight = "10";
extraGroups = adminGroups; IOAccounting = true;
IOWeight = "10";
MemoryMax = "2G";
MemorySwapMax = "1G";
TasksMax = "100";
}; };
}; };
in
(builtins.foldl'
(attrs: user: {
options = lib.recursiveUpdate attrs.options (mkUser user.name attrs.uid (user.options or { }));
uid = attrs.uid + 1;
})
{
options = { };
uid = 1000;
} }
users
).options