Téléverser les fichiers vers "/"

This commit is contained in:
2026-08-19 15:23:31 +02:00
parent 2a7c0a8b99
commit fec8c767a5
5 changed files with 203 additions and 137 deletions
+56 -57
View File
@@ -1,79 +1,78 @@
# Checklist de mise en production — NixOS Workstations
# Checklist de validation — v1.8 LAB
## Avant activation
Cette checklist correspond au workflow de provisioning `systemd-homed + LUKS2 + FIDO2`.
## État de départ
- `localadm` existe et reste administrateur local classique ;
- `alice` n'existe pas encore ;
- `/home/alice.home` n'existe pas ;
- la YubiKey est vierge/reset FIDO2 et ne possède aucun PIN.
## Construction puis activation
Depuis `localadm` :
```bash
cd ~/nixos-workstations
sudo nixos-rebuild build \
-I nixos-config=/home/localadm/nixos-workstations/configuration.nix
sudo nixos-rebuild dry-activate \
-I nixos-config=/home/localadm/nixos-workstations/configuration.nix
-I nixos-config="$PWD/configuration.nix"
```
## Test contrôlé
1. Vérifier que `localadm` se connecte toujours par mot de passe.
2. Vérifier que `/etc/nixos/hardware-configuration.nix` est bien le fichier local du poste.
3. Exécuter :
```bash
sudo nixos-rebuild test \
-I nixos-config=/home/localadm/nixos-workstations/configuration.nix
```
4. Fermer la session `localadm` et ouvrir la session `alice`.
5. Vérifier que l'assistant plein écran démarre automatiquement.
6. Tester avec le mot de passe temporaire du lab `LaboTest@1980` et le PIN temporaire réel de la YubiKey.
7. Vérifier qu'un mauvais PIN produit une erreur et **ne déclenche aucune tentative automatique supplémentaire**.
8. Vérifier qu'après succès les deux fichiers existent :
```bash
ls -l ~/.local/state/nixos-workstations/
```
Attendu :
```text
password-initialized
yubikey-pin-created
```
9. Se déconnecter/reconnecter : l'assistant ne doit plus démarrer.
10. Tester l'authentification YubiKey + nouveau PIN, puis le mot de passe local de secours.
## Passage persistant
Uniquement après validation complète :
Si le build est OK, activer la génération :
```bash
sudo nixos-rebuild switch \
-I nixos-config=/home/localadm/nixos-workstations/configuration.nix
-I nixos-config="$PWD/configuration.nix"
```
## Important
`build` seul ne modifie pas le système actif. La précréation d'Alice est exécutée lors de l'activation (`switch`).
- Ne jamais supprimer/réinitialiser la YubiKey en cas d'erreur de PIN.
- Ne jamais modifier manuellement `/etc/shadow`.
- Le retour à une ancienne génération NixOS ne restaure pas les mots de passe mutables.
## Précréation attendue
## Diagnostic v1.4 avant test de l'interface
Le déploiement doit avoir créé :
Dans la session `alice` :
- le compte `alice` via `systemd-homed` ;
- `/home/alice.home` en LUKS2 ;
- le mot de passe temporaire LAB `LaboTest@1980` ;
- aucun token FIDO2 ;
- aucune recovery key.
```bash
nixos-workstations-setup --target-user alice --diagnose
```
Le correctif SDDM doit afficher Alice dans le greeter.
Attendu au minimum :
## Première session Alice
Alice se connecte avec :
```text
current_user=alice
target_user=alice
current_user_utf8_hex=616c696365
target_user_utf8_hex=616c696365
authorized=yes
LaboTest@1980
```
Le diagnostic indique également les deux marqueurs et le chemin du journal local.
L'assistant doit démarrer automatiquement et effectuer, dans cet ordre :
1. changement du mot de passe temporaire ;
2. création du premier PIN sur la YubiKey vierge ;
3. enrôlement FIDO2 de la YubiKey dans le home `systemd-homed`.
Pendant l'étape FIDO2, Alice saisit son **nouveau mot de passe** et son **PIN YubiKey**, puis touche la clé quand elle clignote.
**Aucune recovery key ne doit être demandée.**
## État final attendu
Les trois marqueurs doivent exister :
```text
~/.local/state/nixos-workstations/password-initialized
~/.local/state/nixos-workstations/yubikey-pin-created
~/.local/state/nixos-workstations/yubikey-fido-enrolled
```
Après déconnexion :
1. connexion avec YubiKey + PIN : OK ;
2. connexion avec mot de passe : OK ;
3. les deux ouvrent le même `/home/alice` LUKS2.
La recovery key d'administration sera ajoutée dans une étape ultérieure ; elle ne fait volontairement pas partie de la v1.8.