Skip to content

Users and identities

Users are declared once in etc/config.yaml, then attached to the hosts where they need to log in. The same account can exist on multiple machines.

etc/config.yaml
users:
alice:
uid: 1000
name: "Alice Martin"
email: "alice@domain.tld"
profile: "advanced"
groups: ["global", "idm-devs"]
FieldRole
(key)Account login (e.g. alice)
uidStable numeric identifier
nameDisplay name
emailAddress (also used for SSO identity)
profileUser profile (environment)
groupsGroups (network and service access)

Under a host, users lists the existing logins allowed to connect to it:

etc/config.yaml
hosts:
poste-alice:
profile: "desktop"
users: ["alice"]

Any modification to etc/config.yaml follows the same cycle: describe, regenerate, commit to git, then deploy.

  1. Describe the change

    Create or modify the user and their workstations in etc/config.yaml.

  2. Regenerate and clean code

    Fenêtre de terminal
    just clean # generate + fix + format
  3. Commit to git

    Fenêtre de terminal
    just commit "user(new): alice"
  4. Deploy

    Fenêtre de terminal
    just apply poste-alice # creates the account on the host
  1. Set the hash

    Fenêtre de terminal
    just passwd alice
  2. Commit to git

    Fenêtre de terminal
    just commit "user(passwd): alice"
  3. Deploy

    Fenêtre de terminal
    just apply @user-alice

Beyond the system account, the user has a single identity (Kanidm) that provides access to network services.

  • groups control service access.
  • idm-admins / idm-devs are the administration and development groups.
  • For details: SSO and identities.
  • On one host: remove the login from the host’s users list.
  • Everywhere: remove the entry under users:.
  • Service access: removing the user from groups cuts SSO access.

In all cases, then apply the just cleanjust commitjust apply cycle on the affected hosts.