servers/nixos/common/users/admin.nix

34 lines
821 B
Nix

{
config,
lib,
foelib,
...
}: let
inherit (lib) mkIf mkOption mkEnableOption optionals types;
cfg = config.foehammer.users.admin;
in {
options.foehammer.users.admin = {
enable = mkEnableOption "Enable a wheel admin user.";
hashedPasswordFile = mkOption {
type = with types; nullOr str;
default = null;
};
};
config = mkIf cfg.enable {
users.users.admin = {
createHome = true;
description = "SSH Admin User.";
group = "admin";
extraGroups = ["wheel"] ++ optionals config.virtualisation.docker.enable ["docker"];
isNormalUser = true;
uid = 9999;
openssh.authorizedKeys.keys = foelib.getSSHKeys "foehammer";
hashedPasswordFile = cfg.hashedPasswordFile;
};
users.groups.admin.gid = config.users.users.admin.uid;
};
}