Actualiser modules/homed.nix
This commit is contained in:
+58
-21
@@ -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 :
|
|
||||||
#
|
#
|
||||||
# Sur NixOS, les modules NSS externes (notamment libnss_systemd.so)
|
# IMPORTANT :
|
||||||
# ne sont pas disponibles par défaut dans le chemin de chargement
|
#
|
||||||
# du processus SDDM.
|
# SDDM construit sa liste d'utilisateurs dans sddm-greeter avec
|
||||||
#
|
# getpwent().
|
||||||
# NixOS fournit déjà ce chemin à nscd/nsncd via
|
#
|
||||||
# config.system.nssModules.path.
|
# Sous NixOS, libnss_systemd.so n'est pas dans le chemin standard
|
||||||
#
|
# du linker. Le chemin des modules NSS est fourni par :
|
||||||
# On fournit le même chemin uniquement au display-manager afin que
|
#
|
||||||
# SDDM puisse énumérer les comptes systemd-homed avec getpwent().
|
# config.system.nssModules.path
|
||||||
systemd.services.display-manager.environment = {
|
#
|
||||||
LD_LIBRARY_PATH = config.system.nssModules.path;
|
# Notre test a confirmé que :
|
||||||
|
#
|
||||||
|
# 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}";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user