users: enable users per-host

This commit is contained in:
Katherina Walshe-Grey 2024-11-14 13:42:36 +00:00
parent 80fcd62ba4
commit d69e1dcc16
10 changed files with 72 additions and 30 deletions

View file

@ -2,7 +2,7 @@
imports = [ imports = [
./qenya.nix ./qenya.nix
./randomcat.nix ./randomcat.nix
./richard.nix ./trungle.nix
]; ];
users.mutableUsers = false; users.mutableUsers = false;

View file

@ -1,16 +1,28 @@
{ config, lib, pkgs, self, ... }: { config, lib, pkgs, self, ... }:
let keys = import ../../keys.nix; let
in { inherit (lib) mkIf mkEnableOption;
users.users.qenya = { keys = import ../../keys.nix;
isNormalUser = true; cfg = config.fountain.users.qenya;
home = "/home/qenya"; in
shell = pkgs.zsh; {
openssh.authorizedKeys.keys = keys.users.qenya; options.fountain.users.qenya = {
uid = 1001; enable = mkEnableOption "user qenya";
}; };
programs.zsh.enable = true; config = mkIf cfg.enable {
users.users.qenya = {
uid = 1001;
isNormalUser = true;
group = "qenya";
shell = pkgs.zsh;
openssh.authorizedKeys.keys = keys.users.qenya;
};
home-manager.users."qenya" = self.homeManagerModules."qenya"; users.groups.qenya.gid = config.users.users.qenya.uid;
programs.zsh.enable = true;
home-manager.users."qenya" = self.homeManagerModules."qenya";
};
} }

View file

@ -1,12 +1,23 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let keys = import ../../keys.nix; let
inherit (lib) mkIf mkEnableOption;
keys = import ../../keys.nix;
cfg = config.fountain.users.randomcat;
in in
{ {
users.users.randomcat = { options.fountain.users.randomcat = {
isNormalUser = true; enable = mkEnableOption "user randomcat";
home = "/home/randomcat"; };
openssh.authorizedKeys.keys = keys.users.randomcat;
uid = 1003; config = mkIf cfg.enable {
users.users.randomcat = {
uid = 1000;
isNormalUser = true;
group = "randomcat";
openssh.authorizedKeys.keys = keys.users.randomcat;
};
users.groups.randomcat.gid = config.users.users.randomcat.uid;
}; };
} }

View file

@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let keys = import ../../keys.nix;
in
{
users.users.richard = {
isNormalUser = true;
home = "/home/richard";
openssh.authorizedKeys.keys = keys.users.trungle;
uid = 1002;
};
}

23
common/users/trungle.nix Normal file
View file

@ -0,0 +1,23 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
keys = import ../../keys.nix;
cfg = config.fountain.users.trungle;
in
{
options.fountain.users.trungle = {
enable = mkEnableOption "user trungle";
};
config = mkIf cfg.enable {
users.users.trungle = {
uid = 1002;
isNormalUser = true;
group = "trungle";
openssh.authorizedKeys.keys = keys.users.trungle;
};
users.groups.trungle.gid = config.users.users.trungle.uid;
};
}

View file

@ -10,7 +10,11 @@
networking.hostName = "kalessin"; networking.hostName = "kalessin";
networking.hostId = "534b538e"; networking.hostId = "534b538e";
fountain.users.qenya.enable = true;
users.users.qenya.extraGroups = [ "wheel" ]; users.users.qenya.extraGroups = [ "wheel" ];
fountain.users.trungle.enable = true;
qenya.base-server.enable = true; qenya.base-server.enable = true;
system.stateVersion = "23.11"; system.stateVersion = "23.11";

View file

@ -25,6 +25,7 @@
qenya.services.pipewire.lowLatency.enable = true; qenya.services.pipewire.lowLatency.enable = true;
fountain.users.qenya.enable = true;
age.secrets.user-password-kilgharrah-qenya.file = ../../secrets/user-password-kilgharrah-qenya.age; age.secrets.user-password-kilgharrah-qenya.file = ../../secrets/user-password-kilgharrah-qenya.age;
users.users.qenya.hashedPasswordFile = config.age.secrets.user-password-kilgharrah-qenya.path; users.users.qenya.hashedPasswordFile = config.age.secrets.user-password-kilgharrah-qenya.path;
users.users.qenya.extraGroups = [ "wheel" ]; users.users.qenya.extraGroups = [ "wheel" ];

View file

@ -10,6 +10,7 @@
networking.hostName = "orm"; networking.hostName = "orm";
networking.hostId = "00000000"; networking.hostId = "00000000";
fountain.users.qenya.enable = true;
users.users.qenya.extraGroups = [ "wheel" ]; users.users.qenya.extraGroups = [ "wheel" ];
qenya.base-server.enable = true; qenya.base-server.enable = true;

View file

@ -23,6 +23,7 @@
console.keyMap = "uk"; console.keyMap = "uk";
services.xserver.xkb.layout = "gb"; services.xserver.xkb.layout = "gb";
fountain.users.qenya.enable = true;
age.secrets.user-password-tohru-qenya.file = ../../secrets/user-password-tohru-qenya.age; age.secrets.user-password-tohru-qenya.file = ../../secrets/user-password-tohru-qenya.age;
users.users.qenya.hashedPasswordFile = config.age.secrets.user-password-tohru-qenya.path; users.users.qenya.hashedPasswordFile = config.age.secrets.user-password-tohru-qenya.path;
users.users.qenya.extraGroups = [ users.users.qenya.extraGroups = [

View file

@ -10,6 +10,7 @@
networking.hostName = "yevaud"; networking.hostName = "yevaud";
networking.hostId = "09673d65"; networking.hostId = "09673d65";
fountain.users.qenya.enable = true;
users.users.qenya.extraGroups = [ "wheel" ]; users.users.qenya.extraGroups = [ "wheel" ];
qenya.base-server.enable = true; qenya.base-server.enable = true;