aboutsummaryrefslogtreecommitdiffstats
path: root/modules/vhack/us/users
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-07-30 14:05:39 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-07-30 14:05:39 +0200
commitc153a351659e4596acfc31f00bf594343cbfcd68 (patch)
treea9ed83de07711d6424fbea09aad28891bae5bfe4 /modules/vhack/us/users
parenthosts/server3: Setup prometheus server in agent mode (diff)
downloadnixos-server-c153a351659e4596acfc31f00bf594343cbfcd68.zip
modules: Use namespaces
That might make it easier in the future to merge different server configs together (and thusly facilitate code-reuse.).
Diffstat (limited to 'modules/vhack/us/users')
-rw-r--r--modules/vhack/us/users/module.nix84
1 files changed, 84 insertions, 0 deletions
diff --git a/modules/vhack/us/users/module.nix b/modules/vhack/us/users/module.nix
new file mode 100644
index 0000000..6011204
--- /dev/null
+++ b/modules/vhack/us/users/module.nix
@@ -0,0 +1,84 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.vhack.users;
+
+ mkUser = {
+ name,
+ password,
+ uid,
+ sshKey,
+ }: {
+ inherit name;
+ value = {
+ inherit name uid;
+ isNormalUser = true;
+ home = "/home/${name}";
+ hashedPassword = password;
+ extraGroups = [
+ "wheel"
+ ];
+ openssh.authorizedKeys.keys = [
+ sshKey
+ ];
+ };
+ };
+
+ extraUsers = lib.listToAttrs (
+ builtins.map mkUser [
+ {
+ name = "soispha";
+ password = "$y$jFT$3.8XmUyukZvpExMUxDZkI.$IVrJgm8ysNDF/0vDD2kF6w73ozXgr1LMVRNN4Bq7pv1";
+ sshKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIME4ZVa+IoZf6T3U08JG93i6QIAJ4amm7mkBzO14JSkz cardno:000F_18F83532";
+ uid = 1000;
+ }
+ {
+ name = "sils";
+ password = "$y$jFT$KpFnahVCE9JbE.5P3us8o.$ZzSxCusWqe3sL7b6DLgOXNNUf114tiiptM6T8lDxtKC";
+ sshKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILn7Oumr5IYtTTIKRFvDnofGXXiDLBQE9jVF+7UE+4G5 vhack.eu";
+ uid = 1001;
+ }
+ ]
+ );
+in {
+ options.vhack.users = {
+ enable = lib.mkEnableOption "user setup";
+ };
+
+ config = lib.mkIf cfg.enable {
+ users = {
+ mutableUsers = false;
+ defaultUserShell = pkgs.bashInteractive;
+
+ users =
+ {
+ root = {
+ hashedPassword = lib.mkForce null; # to lock root
+ openssh.authorizedKeys.keys = lib.mkForce [];
+ };
+ }
+ // extraUsers;
+
+ # TODO(@bpeetz): Is this still relevant?
+ # If it is, it should be moved to a separate module. <2024-12-24>
+ # nixremote = {
+ # name = "nixremote";
+ # isNormalUser = true;
+ # createHome = true;
+ # home = "/home/nixremote";
+ # uid = 1003;
+ # group = "nixremote";
+ # openssh.authorizedKeys.keys = [
+ # "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCbSWqFzb+WTq2JVoRGoTkCkP7AM3bNY91bsUBeoQQc8gKAWuqCrpAOmr2Q2QMaTTGEOM0CsWfWLs3ZYtynHmc7wIFc4T/sUloV+dB9oSCmOk5ePxtj8+gpPK35Ja+ug5zmXsaI4s+n9mEbuuEjn33MxDYCUzAI+aWvWe68u/j+FM3u9c3Ta009rotajjSZ/cmIltgNLsG1rnAZRpwmLVg5UL4cb9um54o/NLYFd2KAekQFVbwUQDzzqriZhWmzkfhnznBMDblf9R1xvZ18Lqv3JF21shdaR43NW1wtuntBvAdsVYK2VUEbj+3MxTkK0aQ/E9SHMtH8MRE4oxU74TeTWfIhuSZk9/wekzSNMkHP3ReFC6B9xCMYa+ZqaTaGSWLQi78AQDeM2F9rAfp3hQzyRa7T7qKlgbae/hEb07xZglqmG7eml9vPSt4AHv5Y176Q95NiiWduGoLQOmjvSBMU9/KEGrGKyLfGH1Wa2EOfPxKKcvcHW0Xi9PlPiuP0nYk= root@thinklappi"
+ # ];
+ # };
+ # };
+ # groups.nixremote = {
+ # gid = 1004;
+ # };
+ };
+ };
+}