diff --git a/STEP2-HOMED-LUKS-LAB.md b/STEP2-HOMED-LUKS-LAB.md new file mode 100644 index 0000000..da8aea6 --- /dev/null +++ b/STEP2-HOMED-LUKS-LAB.md @@ -0,0 +1,151 @@ +# Étape 2 LAB — systemd-homed + LUKS2 + +## Objectif + +Valider **uniquement** : + +- Alice gérée par `systemd-homed` ; +- `/home/alice` stocké dans un conteneur LUKS2 individuel `/home/alice.home` ; +- déverrouillage par mot de passe ; +- recovery key ; +- ouverture de session KDE/SDDM ; +- démontage du home après la dernière session. + +La YubiKey n'est pas encore enrôlée dans le home. L'assistant graphique est temporairement désactivé. + +## 0. Travailler depuis `localadm` + +Fermer complètement toute session `alice`, puis ouvrir une session `localadm` (ou un TTY `localadm`). + +## 1. Activer la configuration en mode test + +Depuis le dépôt : + +```bash +sudo nixos-rebuild build -I nixos-config="$PWD/configuration.nix" +sudo nixos-rebuild dry-activate -I nixos-config="$PWD/configuration.nix" +sudo nixos-rebuild test -I nixos-config="$PWD/configuration.nix" +``` + +Contrôler : + +```bash +systemctl is-active systemd-homed.service +``` + +Résultat attendu : `active`. + +À ce stade `alice` ne doit plus être un compte UNIX classique : + +```bash +getent passwd alice +``` + +Avant `homectl create`, la commande ne doit rien retourner. + +## 2. Mettre de côté l'ancien home vide si nécessaire + +Vérifier : + +```bash +sudo ls -ld /home/alice /home/alice.home 2>/dev/null || true +``` + +Si `/home/alice` existe encore à cause de l'ancien compte classique, le renommer plutôt que le supprimer : + +```bash +sudo mv /home/alice /home/alice.pre-homed +``` + +Si `/home/alice.home` existe déjà, **ne pas continuer** : il faut d'abord comprendre son origine. + +## 3. Créer Alice avec un home LUKS2 + +LAB : volume fixe de 10 Gio, ext4 à l'intérieur du LUKS2 : + +```bash +sudo homectl create alice \ + --real-name="Alice" \ + --storage=luks \ + --fs-type=ext4 \ + --disk-size=10G \ + --access-mode=0700 \ + --recovery-key=yes +``` + +`homectl` demande interactivement le mot de passe d'Alice. Utiliser pour ce test le mot de passe que l'on souhaite réellement tester avec SDDM. + +**Copier immédiatement la recovery key affichée et la conserver hors du poste.** + +## 4. Vérifier l'identité homed et le stockage + +```bash +homectl list +homectl inspect alice +getent passwd alice +sudo ls -lh /home/alice.home +``` + +Le compte doit maintenant être résolu via NSS même s'il n'est pas présent comme compte classique dans `/etc/passwd`. + +## 5. Tester le mot de passe sans SDDM + +```bash +homectl authenticate alice +``` + +Entrer le mot de passe créé à l'étape 3. Cette commande valide le secret sans changer l'état actif/inactif du home. + +## 6. Tester activation / montage LUKS2 + +```bash +sudo homectl activate alice +findmnt /home/alice +homectl inspect alice +``` + +Puis : + +```bash +sudo homectl deactivate alice +findmnt /home/alice || echo "OK : home démonté" +homectl inspect alice +``` + +## 7. Tester la recovery key + +```bash +homectl authenticate alice +``` + +Cette fois, saisir la **recovery key** à la place du mot de passe. Elle doit être acceptée. + +## 8. Tester KDE / SDDM + +Déconnecter `localadm`, puis ouvrir la session `alice` dans SDDM avec le mot de passe créé avec `homectl`. + +Dans la session Alice : + +```bash +findmnt "$HOME" +homectl inspect alice +``` + +Attendu : `/home/alice` monté et home `active`. + +Déconnecter complètement Alice, revenir sous `localadm`, puis : + +```bash +homectl inspect alice +findmnt /home/alice || echo "OK : home inactif et démonté" +``` + +## 9. Ne faire `switch` qu'après validation + +Si toutes les vérifications ci-dessus passent : + +```bash +sudo nixos-rebuild switch -I nixos-config="$PWD/configuration.nix" +``` + +Sinon, la génération `test` n'est pas persistante après redémarrage et `localadm` reste le compte de récupération.