53 lines
878 B
Nix
53 lines
878 B
Nix
{ lib, ... }:
|
|
let
|
|
inherit (lib) optionals;
|
|
|
|
adminGroups = [
|
|
"adm"
|
|
"named"
|
|
"networkmanager"
|
|
"nginx"
|
|
"tuxcord"
|
|
"wheel"
|
|
];
|
|
|
|
mkUser = name: uid: options: {
|
|
users.users.${name} = {
|
|
isNormalUser = true;
|
|
extraGroups = optionals options.admin adminGroups;
|
|
inherit uid;
|
|
};
|
|
|
|
systemd.slices."user-${uid}".sliceConfig = {
|
|
CPUQuota = "50%";
|
|
CPUWeight = "10";
|
|
IOAccounting = true;
|
|
IOWeight = "10";
|
|
MemoryMax = "2G";
|
|
MemorySwapMax = "1G";
|
|
TasksMax = "100";
|
|
};
|
|
};
|
|
in
|
|
map (user: mkUser user.name user.uid user.options) [
|
|
{
|
|
name = "error";
|
|
uid = 1000;
|
|
options.admin = true;
|
|
}
|
|
{
|
|
name = "javalsai";
|
|
uid = 1001;
|
|
options.admin = true;
|
|
}
|
|
{
|
|
name = "deadvey";
|
|
uid = 1002;
|
|
options.admin = true;
|
|
}
|
|
{
|
|
name = "vectorum";
|
|
uid = 1003;
|
|
}
|
|
]
|