From 301e81f81abef989c50d93e0c355bdbc851d6763 Mon Sep 17 00:00:00 2001 From: Olivier <1+olivier@noreply.raspot.in> Date: Wed, 19 Aug 2026 12:29:13 +0200 Subject: [PATCH] Actualiser modules/homed.nix --- modules/homed.nix | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/modules/homed.nix b/modules/homed.nix index 3193251..1dd6c18 100644 --- a/modules/homed.nix +++ b/modules/homed.nix @@ -1,22 +1,37 @@ { ... }: { - # systemd-homed gère l'identité et le home chiffré des utilisateurs. + # Active systemd-homed. # - # Les utilisateurs homed ne sont pas créés déclarativement ici : - # ils sont créés avec homectl afin qu'aucun mot de passe, recovery key - # ou secret utilisateur ne soit stocké dans Git ou dans le Nix store. + # Les utilisateurs homed ne sont pas créés déclarativement dans Nix. + # Ils seront créés avec homectl afin de ne stocker aucun mot de passe, + # recovery key ou secret utilisateur dans Git / Nix store. services.homed.enable = true; - # systemd-homed attribue normalement les utilisateurs dans la plage - # 60001-60513. + # NixOS utilise des comptes nixbld avec des UID > 1000. # - # Par défaut, SDDM sous NixOS limite l'affichage à une plage d'UID - # plus basse, ce qui faisait qu'Alice n'apparaissait pas dans la liste - # malgré une authentification fonctionnelle. + # systemd-userdb les considère donc comme faisant partie de la plage + # des utilisateurs réguliers et NixOS émet un avertissement. + # + # Dans notre architecture ce n'est pas problématique : + # nous n'utilisons pas la création automatique du premier utilisateur + # systemd-homed, puisque Alice est créée explicitement avec homectl. + services.userdbd.silenceHighSystemUsers = true; + + # Les utilisateurs systemd-homed utilisent normalement des UID élevés, + # dans la plage 60001-60513. + # + # La limite SDDM doit donc être augmentée pour qu'Alice apparaisse + # dans la liste des utilisateurs. + # + # En contrepartie, les comptes nixbld (UID 30001-30032) entrent eux + # aussi dans cette plage. On les masque via leur shell nologin. services.displayManager.sddm.settings = { Users = { + MinimumUid = 1000; MaximumUid = 60513; + + HideShells = "/run/current-system/sw/bin/nologin"; }; }; } \ No newline at end of file