From 2a7c0a8b99786978305b1e83e49260557e21be0f Mon Sep 17 00:00:00 2001 From: Olivier <1+olivier@noreply.raspot.in> Date: Wed, 19 Aug 2026 14:13:25 +0200 Subject: [PATCH] Actualiser modules/homed.nix --- modules/homed.nix | 79 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 58 insertions(+), 21 deletions(-) diff --git a/modules/homed.nix b/modules/homed.nix index 3475834..d43b666 100644 --- a/modules/homed.nix +++ b/modules/homed.nix @@ -1,36 +1,73 @@ { config, ... }: { - # Active systemd-homed pour les comptes utilisateurs dont le home - # est géré et chiffré individuellement. + # + # systemd-homed + # + # Les utilisateurs finaux sont gérés par systemd-homed et non par + # users.users.. + # + # Leur home pourra être stocké dans un volume LUKS2 individuel. + # services.homed.enable = true; - # NixOS utilise des comptes nixbld avec des UID > 1000. - # Dans notre architecture ce n'est pas un problème car nous créons - # explicitement les utilisateurs homed avec homectl. + + # + # NixOS possède des utilisateurs système nixbld avec des UID > 1000. + # + # Cela déclenche un avertissement de systemd-userdb concernant + # l'existence d'utilisateurs "réguliers". + # + # Dans notre architecture ce warning n'est pas pertinent : + # les utilisateurs homed sont créés explicitement avec homectl. + # services.userdbd.silenceHighSystemUsers = true; - # systemd-homed utilise des UID dans une plage élevée. - # Il faut donc permettre à SDDM d'afficher ces utilisateurs. + + # + # SDDM + systemd-homed + # + # systemd-homed utilise des UID dynamiques élevés. + # La plage réservée aux utilisateurs homed monte jusqu'à 60513. + # + # NixOS configure normalement SDDM avec MaximumUid = nixbld, + # soit environ 30000, ce qui exclurait Alice (UID 60456 dans notre test). + # services.displayManager.sddm.settings = { + Users = { MinimumUid = 1000; MaximumUid = 60513; }; - }; - # IMPORTANT : - # - # Sur NixOS, les modules NSS externes (notamment libnss_systemd.so) - # ne sont pas disponibles par défaut dans le chemin de chargement - # du processus SDDM. - # - # NixOS fournit déjà ce chemin à nscd/nsncd via - # config.system.nssModules.path. - # - # On fournit le même chemin uniquement au display-manager afin que - # SDDM puisse énumérer les comptes systemd-homed avec getpwent(). - systemd.services.display-manager.environment = { - LD_LIBRARY_PATH = config.system.nssModules.path; + + # + # IMPORTANT : + # + # SDDM construit sa liste d'utilisateurs dans sddm-greeter avec + # getpwent(). + # + # Sous NixOS, libnss_systemd.so n'est pas dans le chemin standard + # du linker. Le chemin des modules NSS est fourni par : + # + # config.system.nssModules.path + # + # Notre test a confirmé que : + # + # LD_LIBRARY_PATH= + # getent -s systemd passwd + # + # permet immédiatement d'énumérer Alice. + # + # GreeterEnvironment est le mécanisme SDDM prévu pour transmettre + # ces variables au processus sddm-greeter. + # + # On conserve également la variable nécessaire au greeter + # KDE/Wayland de NixOS. + # + General = { + GreeterEnvironment = + "QT_WAYLAND_SHELL_INTEGRATION=layer-shell,LD_LIBRARY_PATH=${config.system.nssModules.path}"; + }; }; } \ No newline at end of file