nixos: define user limits
This commit is contained in:
+50
-25
@@ -1,27 +1,52 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
users.users =
|
||||
let
|
||||
adminGroups = [
|
||||
"adm"
|
||||
"named"
|
||||
"networkmanager"
|
||||
"nginx"
|
||||
"tuxcord"
|
||||
"wheel"
|
||||
];
|
||||
in
|
||||
{
|
||||
error = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.fish;
|
||||
extraGroups = adminGroups;
|
||||
};
|
||||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib) optionals;
|
||||
|
||||
javalsai = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.zsh;
|
||||
extraGroups = adminGroups;
|
||||
};
|
||||
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;
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user