Gérer les utilisateurs
Cette page concerne le compte POSIX déclaré dans etc/config.yaml : déclaration,
rattachement aux hôtes, mot de passe, accès SSH, désactivation.
Créer un compte Linux (POSIX)
Section intitulée « Créer un compte Linux (POSIX) »Les utilisateurs sont déclarés une fois dans etc/config.yaml, puis
rattachés aux hôtes où ils doivent ouvrir une session. Le même compte peut
exister sur plusieurs machines.
Déclarer un utilisateur
Section intitulée « Déclarer un utilisateur »users: alice: uid: 1000 name: "Alice Martin" email: "alice@domain.tld" profile: "advanced" groups: ["global", "idm-devs"]| Champ | Rôle |
|---|---|
| (clé) | Login du compte (ex. alice) |
uid | Identifiant numérique stable |
name | Nom affiché |
email | Adresse (sert aussi à l’identité SSO) |
profile | Profil utilisateur (environnement) |
groups | Groupes (accès réseau et services) |
Le déploiement du HCS lui crée aussi un compte Kanidm, sans identifiant.
Rattacher à un hôte
Section intitulée « Rattacher à un hôte »Sous un hôte, users liste les logins existants autorisés à s’y connecter :
hosts: poste-alice: profile: "desktop" users: ["alice"]Déployer les modifications
Section intitulée « Déployer les modifications »Toute modification de etc/config.yaml suit le même cycle :
-
Décrire le changement
Créer ou modifier l’utilisateur et ses postes dans
etc/config.yaml. -
Régénérer et nettoyer le code
Fenêtre de terminal just clean # generate + fix + format -
Valider dans git
Fenêtre de terminal just commit "user(new): alice" -
Déployer
Fenêtre de terminal just apply @user-alice,hcs # postes d'alice + compte Kanidm
Définir le mot de passe
Section intitulée « Définir le mot de passe »-
Définir l’empreinte
Fenêtre de terminal just passwd aliceL’utilisateur peut saisir lui-même son mot de passe. À distance, il envoie son empreinte (
mkpasswd -m sha-512), à coller avecjust sopssoususer.alice.password-hash. -
Valider dans git
Fenêtre de terminal just commit "chore(user): alice password" -
Déployer
Fenêtre de terminal just apply @user-alice,hcs
Accès SSH
Section intitulée « Accès SSH »L’accès SSH est par clé uniquement et entièrement déclaratif, sur toute la flotte :
- Mot de passe et clavier interactif sont désactivés.
- Déclarer les clés publiques dans
usr/users/<login>/authorized_keys. - Le fichier vaut pour tous les hôtes du compte.
- Un compte sans clé déclarée peut ouvrir une session locale, hors SSH.
# usr/users/<login>/authorized_keys : une clé par ligne, `#` en commentairessh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA… alice@portableClés privées
Section intitulée « Clés privées »Une clé privée ne va jamais dans le dépôt ni dans sops : la clé d’infra, présente sur chaque hôte, la rendrait lisible par tout root du parc. Elle vit dans le coffre-fort Vaultwarden de l’utilisateur, chiffré de bout en bout.
Sur les postes choisis, rbw sert d’agent SSH et lit les clés du coffre :
# usr/users/<login>/default.nix (profils advanced, admin, nix-admin…)darkone.home.advanced.enableVaultwardenSsh = true;- L’utilisateur range sa clé dans le coffre (Utiliser ma clé SSH).
- Sa clé publique rejoint ensuite
authorized_keys. - Verrouillage après 12 h sans usage :
programs.rbw.settings.lock_timeout(secondes).
Interdire SSH à un groupe
Section intitulée « Interdire SSH à un groupe »Les groups de config.yaml sont logiques : ils ne deviennent pas des
groupes Unix, DenyGroups ne verrait donc rien. DNF les traduit en DenyUsers,
hôte par hôte :
# Défaut : les comptes invités gardent leur session locale, pas SSH.darkone.user.build.sshDeniedGroups = [ "guests" ];Désactiver un compte
Section intitulée « Désactiver un compte »- Sur un hôte : retirer le login de la liste
usersde l’hôte. - Partout : retirer l’entrée sous
users:. - Accès services : retirer l’utilisateur des
groupscoupe l’accès SSO.
Dans tous les cas, appliquer ensuite le cycle just clean → just commit →
just apply sur les hôtes concernés.
Une clé SSH sur YubiKey ?
Section intitulée « Une clé SSH sur YubiKey ? »La clé privée naît dans la YubiKey (FIDO2) et n’en sort jamais : rien à ranger dans le coffre. Chaque connexion demande de toucher la clé.
ssh-keygen -t ed25519-sk -O resident -O verify-required # création, une fois
# Sur un autre poste : récupérer le handle sous le nom lu par défautcd ~/.ssh && ssh-keygen -K && mv id_ed25519_sk_rk id_ed25519_sk- La clé publique (
sk-ssh-ed25519@openssh.com …) rejointauthorized_keys. rbwne gère pas ces clés :sshles lit dans~/.ssh.
Le trousseau GNOME après just passwd ?
Section intitulée « Le trousseau GNOME après just passwd ? »Le trousseau de connexion reste chiffré par l’ancien mot de passe de session. À la session suivante ouverte au mot de passe, DNF le supprime et GNOME le recrée vide : aucune invite, l’ancien mot de passe n’ouvre plus rien.
- Applications : identifiants à ressaisir une fois (Nextcloud, comptes en ligne, Chromium).
- Ouverture par YubiKey, ou trousseau encore actif : suppression reportée à une prochaine session.
- Trousseau sans mot de passe (remède YubiKey, accessibilité) : conservé.
Pour garder un trousseau protégé par un mot de passe propre :
# usr/users/<login>/default.nixdarkone.home.gnome.keepKeyring = true;Un fichier .bkp dans un home ?
Section intitulée « Un fichier .bkp dans un home ? »Une application a remplacé un fichier géré par Home Manager (mimeapps.list,
réglages…). À l’activation suivante, il passe en <fichier>.bkp et la version
déclarée reprend sa place.
- Une seule sauvegarde par fichier : la précédente est écrasée.
- Changement à conserver : le déclarer dans
usr/users/<login>/default.nix.
La liste des comptes à la connexion ?
Section intitulée « La liste des comptes à la connexion ? »Par défaut, l’écran de connexion GDM demande de saisir l’identifiant. Pour choisir son compte dans une liste, sur un poste partagé par exemple :
# usr/machines/<hôte>/configuration.nixdarkone.graphic.gnome.enableGdmSelector = true;