2023-10-03 14:50:43 -06:00
|
|
|
{ pkgs, realUsers, forEachUser, keys, ... }:
|
2023-08-22 13:08:31 -06:00
|
|
|
let
|
2023-10-03 14:50:43 -06:00
|
|
|
extraGroups = [
|
|
|
|
"audio"
|
|
|
|
"adbusers"
|
|
|
|
"disk"
|
|
|
|
"docker"
|
|
|
|
"networkmanager"
|
|
|
|
"openrazer"
|
|
|
|
"plugdev"
|
|
|
|
"syncthing"
|
|
|
|
"systemd-journal"
|
|
|
|
"video"
|
|
|
|
];
|
|
|
|
extraGroupsWithWheel = extraGroups ++ ["wheel"];
|
|
|
|
userDefaults = {
|
|
|
|
group = "users";
|
|
|
|
isNormalUser = true;
|
|
|
|
createHome = true;
|
|
|
|
shell = pkgs.zsh;
|
|
|
|
};
|
2023-08-22 13:08:31 -06:00
|
|
|
in
|
|
|
|
{
|
|
|
|
security.sudo.wheelNeedsPassword = false;
|
2023-10-03 14:50:43 -06:00
|
|
|
users.users = with keys; {
|
2023-08-03 22:01:56 -06:00
|
|
|
syncthing = {
|
2023-08-05 19:31:34 -06:00
|
|
|
extraGroups = [ "syncthing" "wheel" ];
|
2023-08-03 22:01:56 -06:00
|
|
|
home = "/var/lib/syncthing";
|
|
|
|
createHome = true;
|
|
|
|
};
|
2023-12-07 20:21:33 -07:00
|
|
|
nginx = {
|
2023-12-13 11:38:45 -07:00
|
|
|
group = "nginx";
|
2023-12-07 20:21:33 -07:00
|
|
|
extraGroups = ["syncthing"];
|
|
|
|
};
|
2023-07-28 10:53:50 -06:00
|
|
|
imalison = userDefaults // {
|
2023-10-03 14:50:43 -06:00
|
|
|
extraGroups = extraGroupsWithWheel;
|
2023-07-28 10:53:50 -06:00
|
|
|
name = "imalison";
|
|
|
|
shell = pkgs.zsh;
|
2023-08-22 13:08:31 -06:00
|
|
|
openssh.authorizedKeys.keys = kanivanKeys;
|
2021-07-10 15:27:14 -06:00
|
|
|
};
|
|
|
|
kat = userDefaults // {
|
2023-10-03 14:50:43 -06:00
|
|
|
extraGroups = extraGroupsWithWheel;
|
2021-07-10 15:27:14 -06:00
|
|
|
name = "kat";
|
|
|
|
shell = pkgs.zsh;
|
2023-08-22 13:08:31 -06:00
|
|
|
openssh.authorizedKeys.keys = kanivanKeys;
|
2021-07-10 15:27:14 -06:00
|
|
|
};
|
2023-07-19 12:43:03 -06:00
|
|
|
dean = userDefaults // {
|
2023-10-03 14:50:43 -06:00
|
|
|
extraGroups = extraGroupsWithWheel;
|
2023-07-19 12:43:03 -06:00
|
|
|
name = "dean";
|
|
|
|
shell = pkgs.zsh;
|
2023-08-22 13:08:31 -06:00
|
|
|
openssh.authorizedKeys.keys = kanivanKeys ++ deanKeys;
|
2023-07-19 12:43:03 -06:00
|
|
|
};
|
2023-11-17 13:55:22 -07:00
|
|
|
will = userDefaults // {
|
|
|
|
extraGroups = extraGroupsWithWheel;
|
|
|
|
name = "will";
|
|
|
|
shell = pkgs.zsh;
|
|
|
|
openssh.authorizedKeys.keys = kanivanKeys ++ willKeys;
|
|
|
|
};
|
2023-08-03 15:20:23 -06:00
|
|
|
alex = userDefaults // {
|
2023-10-03 14:50:43 -06:00
|
|
|
extraGroups = extraGroupsWithWheel;
|
2023-08-03 15:20:23 -06:00
|
|
|
name = "alex";
|
|
|
|
shell = pkgs.zsh;
|
2023-08-22 13:08:31 -06:00
|
|
|
openssh.authorizedKeys.keys = kanivanKeys ++ alexKeys;
|
2023-08-03 15:20:23 -06:00
|
|
|
};
|
2023-10-03 14:50:43 -06:00
|
|
|
loewy = userDefaults // {
|
|
|
|
inherit extraGroups;
|
|
|
|
name = "loewy";
|
|
|
|
openssh.authorizedKeys.keys = kanivanKeys ++ loewyKeys;
|
|
|
|
};
|
|
|
|
mike = userDefaults // {
|
|
|
|
inherit extraGroups;
|
|
|
|
name = "mike";
|
|
|
|
openssh.authorizedKeys.keys = kanivanKeys ++ mikeKeys;
|
|
|
|
};
|
2023-11-16 01:48:47 -07:00
|
|
|
andy = userDefaults // {
|
|
|
|
inherit extraGroups;
|
|
|
|
name = "andy";
|
|
|
|
openssh.authorizedKeys.keys = kanivanKeys ++ andyKeys;
|
|
|
|
};
|
2021-07-10 15:27:14 -06:00
|
|
|
};
|
|
|
|
|
2023-08-20 02:54:19 -06:00
|
|
|
nix.settings.trusted-users = realUsers;
|
2023-08-22 13:08:31 -06:00
|
|
|
nix.sshServe = {
|
|
|
|
enable = true;
|
2023-10-03 14:50:43 -06:00
|
|
|
keys = keys.allKeys;
|
2023-08-22 13:08:31 -06:00
|
|
|
};
|
2023-08-20 02:54:19 -06:00
|
|
|
|
|
|
|
home-manager.users = forEachUser (import ./home-manager.nix);
|
2021-07-10 15:27:14 -06:00
|
|
|
}
|