nixos-config/profiles/security.nix

91 lines
2.4 KiB
Nix
Raw Normal View History

2020-08-29 17:47:21 +04:00
{ config, pkgs, lib, ... }:
with config.deviceSpecific; {
2022-02-11 21:09:58 +03:00
security.apparmor.enable = !isContainer;
2019-08-27 23:41:02 +04:00
programs.firejail.enable = true;
users.mutableUsers = false;
2022-12-10 22:34:39 +03:00
users.users.${config.mainuser} = {
2019-08-27 23:41:02 +04:00
isNormalUser = true;
extraGroups = [
2022-07-02 19:30:20 +03:00
"adbusers"
2019-08-27 23:41:02 +04:00
"audio"
2022-07-02 19:30:20 +03:00
"cdrom"
"corectrl"
"dialout"
"disk"
2019-08-27 23:41:02 +04:00
"docker"
"input"
2021-02-07 02:38:11 +03:00
"kvm"
2022-07-02 19:30:20 +03:00
"libvirtd"
2021-02-07 02:38:11 +03:00
"lp"
2022-07-02 19:30:20 +03:00
"lxd"
"networkmanager"
2022-12-07 22:13:34 +03:00
"podman"
"qemu-libvirtd"
2022-07-02 19:30:20 +03:00
"scanner"
2022-12-14 23:51:59 +03:00
"systemd-journal"
2022-07-02 19:30:20 +03:00
"smbuser"
2021-09-16 01:03:52 +03:00
"video"
2022-12-07 22:13:34 +03:00
# "wheel" # remove?
2019-08-27 23:41:02 +04:00
];
2022-12-07 22:05:00 +03:00
description = "AtaraxiaDev";
2019-08-27 23:41:02 +04:00
uid = 1000;
2022-12-14 23:51:59 +03:00
hashedPassword = "$y$j9T$ZC44T3XYOPapB26cyPsA4.$8wlYEbwXFszC9nrg0vafqBZFLMPabXdhnzlT3DhUit6";
2019-08-27 23:41:02 +04:00
shell = pkgs.zsh;
};
2022-12-07 22:13:34 +03:00
# Safe, because we using doas
users.allowNoPasswordLogin = true;
# FIXME
2019-09-14 22:12:56 +04:00
security.sudo = {
enable = true;
2022-12-07 22:13:34 +03:00
extraRules = [{
2022-12-10 22:34:39 +03:00
users = [ config.mainuser ];
2022-12-07 22:13:34 +03:00
commands = [{
command = "/run/current-system/sw/bin/nixos-rebuild";
options = [ "SETENV" "NOPASSWD" ];
} {
command = "/run/current-system/sw/bin/nix";
options = [ "SETENV" "NOPASSWD" ];
} {
command = "/run/current-system/sw/bin/nix-shell";
options = [ "SETENV" "NOPASSWD" ];
}];
}];
# extraConfig = lib.concatStrings [''
2022-12-10 22:34:39 +03:00
# ${config.mainuser} ALL = (root) NOPASSWD: /run/current-system/sw/bin/btrfs fi usage /
2022-12-07 22:13:34 +03:00
# ''
# (if (isLaptop) then ''
2022-12-10 22:34:39 +03:00
# ${config.mainuser} ALL = (root) NOPASSWD: /run/current-system/sw/bin/tlp-stat
# ${config.mainuser} ALL = (root) NOPASSWD: /run/current-system/sw/bin/tlp ac
# ${config.mainuser} ALL = (root) NOPASSWD: /run/current-system/sw/bin/tlp bat
2022-12-07 22:13:34 +03:00
# '' else "")
# ];
2019-09-14 22:12:56 +04:00
};
2022-12-07 22:13:34 +03:00
security.doas = {
enable = true;
extraRules = [{
2022-12-10 22:34:39 +03:00
users = [ config.mainuser ];
2022-12-07 22:13:34 +03:00
keepEnv = true;
persist = true;
} {
2022-12-10 22:34:39 +03:00
users = [ config.mainuser ];
2022-12-07 22:13:34 +03:00
noPass = true;
keepEnv = true;
cmd = "/run/current-system/sw/bin/btrfs";
args = [ "fi" "usage" "/" ];
}] ++ lib.optionals isLaptop [{
2022-12-10 22:34:39 +03:00
users = [ config.mainuser ];
2022-12-07 22:13:34 +03:00
noPass = true;
keepEnv = true;
cmd = "/run/current-system/sw/bin/tlp";
} {
2022-12-10 22:34:39 +03:00
users = [ config.mainuser ];
2022-12-07 22:13:34 +03:00
noPass = true;
keepEnv = true;
cmd = "/run/current-system/sw/bin/tlp-stat";
}];
2021-09-16 01:03:52 +03:00
};
2020-08-07 23:27:49 +04:00
systemd.services."user@" = { serviceConfig = { Restart = "always"; }; };
2022-12-10 22:34:39 +03:00
services.getty.autologinUser = config.mainuser;
2019-08-27 23:41:02 +04:00
}