Actualiser modules/homed.nix

This commit is contained in:
2026-08-19 14:13:25 +02:00
parent d17a74691a
commit 2a7c0a8b99
+54 -17
View File
@@ -1,36 +1,73 @@
{ config, ... }: { 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.<name>.
#
# Leur home pourra être stocké dans un volume LUKS2 individuel.
#
services.homed.enable = true; 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; 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 = { services.displayManager.sddm.settings = {
Users = { Users = {
MinimumUid = 1000; MinimumUid = 1000;
MaximumUid = 60513; MaximumUid = 60513;
}; };
};
#
# IMPORTANT : # IMPORTANT :
# #
# Sur NixOS, les modules NSS externes (notamment libnss_systemd.so) # SDDM construit sa liste d'utilisateurs dans sddm-greeter avec
# ne sont pas disponibles par défaut dans le chemin de chargement # getpwent().
# du processus SDDM.
# #
# NixOS fournit déjà ce chemin à nscd/nsncd via # Sous NixOS, libnss_systemd.so n'est pas dans le chemin standard
# config.system.nssModules.path. # du linker. Le chemin des modules NSS est fourni par :
# #
# On fournit le même chemin uniquement au display-manager afin que # config.system.nssModules.path
# SDDM puisse énumérer les comptes systemd-homed avec getpwent(). #
systemd.services.display-manager.environment = { # Notre test a confirmé que :
LD_LIBRARY_PATH = config.system.nssModules.path; #
# LD_LIBRARY_PATH=<nssModules.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}";
};
}; };
} }