NixOS - Multi-User-Setup einrichten

  Reto   Lesezeit: 4 Minuten  🗪 6 Kommentare Auf Mastodon ansehen

Weitere Benutzer werden anlegt – am Beispiel eines Gastnutzers und einer neuen regulären Benutzerin. Nebeneffekt des heutigen Setups: Heute wird nochmal ganz klar, welche "Nixe" für was zuständig ist.

nixos - multi-user-setup einrichten

Nochmal kurz in Erinnerung gerufen: NixOS trennt sauber zwischen zwei Ebenen:

Ebene Wer verwaltet
System (configuration.nix, flake.nix) Admin (sudo)
Benutzerumgebung (home.nix) Benutzer selbst

Diese Trennung ermöglicht zwei sehr unterschiedliche Szenarien:
Einen Gastnutzer ohne Passwort dessen Umgebung der Admin vollständig
kontrolliert, und eine eigenständige Benutzerin die ihre Konfiguration
selbst verwaltet.

Im Beispiel habe ich die zusätzliche Nutzerin "Anna" getauft.

Anna Gast
Eigene Programme installieren und updaten ✅ selbst ❌ nur Admin
Desktop-Einstellungen ändern

Der Unterschied zwischen den zwei Szenarien

Anna (Standalone): Anna hat ihren eigenen unabhängigen Home Manager der nichts mit der flake.nix zu tun hat. Sie führt home-manager switch selbst aus.

Für Anna braucht NixOS nur zwei Dinge zu wissen:

  1. Dass der Benutzer anna existiert → configuration.nix
  2. Welches Passwort sie hat → sudo passwd anna

Alles andere – ihre Programme, ihr Theme, ihre Shell – ist Annas Privatangelegenheit und wird von ihr selbst über home-manager switch geregelt.

Gastnutzer (als NixOS-Modul): Hier definierst du, neben der configuration.nix, in der flake.nix, wie du mit Gästen umgehen möchtest. Du sagt NixOS: „Verwalte die Benutzerumgebung von gast mit dieser Datei (home-gast.nix)." NixOS baut die Gast-Umgebung beim nixos-rebuild dann automatisch ein.

Konfigurationsdateien zum Download

Wer das so umsetzen möchte, kann sich eine home-gast.nix, die home-anna.nix und einen Vorschlag für eine Nutzeranleitung HIER herunterladen.

Szenario A: Gastnutzer anlegen

Der Gastnutzer betritt das System ohne Passwort und bekommt eine feste
Ausstattung (Firefox, Thunderbird, LibreOffice) die nur der Admin ändern kann.

Schritt 1: Gastnutzer in configuration.nix anlegen

# In configuration.nix
users.users.gast = {
  isNormalUser = true;
  description  = "Gast";
  extraGroups  = [];        # Keine Berechtigungen – kein sudo!
  password     = "";        # Kein Passwort
};

# Leere Passwörter beim Login erlauben
security.pam.services.gdm-password.allowNullPasswords = true;
security.pam.services.login.allowNullPasswords = true;

Schritt 2: home-gast.nix erstellen

Einen Vorschlag für den Inhalt habe ich dir in einer home-gast.nix für den Download vorbereitet.
Du als Admin legst die Konfiguration des Gastnutzers nach deinen Vorstellungen an, editiere also ruhig meinen Vorschlag:

sudo nano /etc/nixos/home-gast.nix

Schritt 3: flake.nix um den Gastnutzer erweitern

Wenn ein Gastzugang auf allen Rechnern eingerichtet wird, dann geht das ungemein elegant durchg Ergänzen descommon-modules-Block in der flake.nix:

{
  home-manager.useGlobalPkgs = true;
  home-manager.useUserPackages = true;
  home-manager.backupFileExtension = "backup";
  home-manager.users.DEIN-USERNAME = import ./home.nix;
  home-manager.users.gast          = import ./home-gast.nix;  # ← neu
}

Soll nur der Heimrechner (im Beispiel ist der Hostname nixos) mit einem Gastzugang ausgestattet werden, dann statt des obigen Eintrags nur den rechnerspezifischen Block ergänzen:

# Nur auf dem Heimrechner "nixos"
  nixos = nixpkgs.lib.nixosSystem {
    modules = common-modules ++ [
      ./nixos.nix
      ./hardware-configuration.nix
      { home-manager.users.gast = import ./home-gast.nix; } # ← nur hier
    ];
};

Schritt 4: Dateirechte setzen

Der Gastnutzer bekommt keine Schreibrechte auf seine Konfigurationsdatei –
nur der Admin darf sie ändern:

# home-gast.nix gehört root, kein Schreibrecht für andere
sudo chmod 644 /etc/nixos/home-gast.nix
sudo chown root:root /etc/nixos/home-gast.nix

Schritt 5: Rebuild und sichern

cd /etc/nixos
sudo git add home-gast.nix
update-push

Nach dem Rebuild erscheint gast im (GDM-)Anmeldebildschirm – ohne Passwortfeld,
einfach anklicken und einloggen.

Szenario B: Eigenständige Benutzerin Anna anlegen

Anna bekommt einen vollwertigen Account und verwaltet ihre Konfiguration
komplett selbst – ohne den Admin zu benötigen.

Schritt 1: Anna in configuration.nix anlegen

users.users.anna = {
  isNormalUser = true;
  description  = "Anna";
  extraGroups  = [ "networkmanager" ];  # Kein "wheel" → kein sudo!
};

Kein wheel in extraGroups – Anna bekommt kein sudo und kann damit
weder nixos-rebuild noch Systemdateien ändern.

Schritt 2: Rebuild damit der Account existiert

update-push

Schritt 3: Passwort für Anna setzen

sudo passwd anna

Schritt 4: Initiale home-anna.nix vorbereiten

Wie eine home-anna.nix aussehen kann, habe ich ebenfalls als Download vorbereitet.

Du als Admin legst Annas initiale Konfiguration in ihrem Home-Verzeichnis ab:

sudo mkdir -p /home/anna/.config/home-manager
sudo cp /etc/nixos/home-anna.nix /home/anna/.config/home-manager/home.nix
sudo chown -R anna:users /home/anna/.config/home-manager

Anna bekommt damit eine fertige Startumgebung – alle auskommentierten
Programme kann sie nach Belieben selbst aktivieren.

Schritt 5: Anna richtet ihren eigenen Home Manager ein

Dir als Administrator empfehle ich, dass du dich einmal selbst als Anna anmeldest und die Umgebung im Terminal einrichtest - das würde sie selbst überfordern:

# Als anna – kein sudo!
nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
nix-channel --update
nix-shell '' -A install

Damit Anna weiß, wie sie sich in NixOS zurechtfindet, habe ich ihr eine kleine Anleitung erstellt.

Die Kurzfassung für Anna:

# Programme hinzufügen: home.nix editieren, dann:
home-manager switch

Zusammenfassung: Welcher Weg für wen?

Szenario Ansatz Konfiguration liegt in
Gastnutzer Admin verwaltet alles /etc/nixos/home-gast.nix
Eigenständige Benutzerin User verwaltet selbst ~/.config/home-manager/home.nix
also nicht in /etc/nixos
Admin (Du) Home, Konfiguration, Flakes /etc/nixos/home.nix /etc/nixos/configuration.nix /etc/nixos/flake.nix

Alle drei Szenarien laufen friedlich nebeneinander – jeder Benutzer auf seiner eigenen Ebene.

Artikel der NixOS-Reihe

Tags

Nix, NixOS, Flakes

shurtugalGL
Geschrieben von shurtugalGL am 1. Juni 2026 um 11:29

Hi,

ich finde deine NixOS-Reihe echt klasse, danke dafür!!

Selbst benutze ich NixOS jetzt seit letztem August. Doch meine bisherige Nutzung beschränkt sich ausschließlich auf die configuration.nix und ich bin gerade dabei die Reihe "durch zu arbeiten", da meine config recht wild aussieht :D

Da kamen mir ein paar Fragen:

  1. Gestartet habe ich mit 25.05, daher lasse ich das natürlich auch in meiner configuration.nix stehen, aber was schreibe ich in die home.nix? Meine erste Version NixOs, oder die Version, mit der ich den Homemanager aktiviere?
  2. Bei einem Versionsupdate (wie es seit 30.05.2026 ja die 26.05 gibt) muss man dann nur noch das Versionspaket auf die aktuelle version schreiben und ist dann fertig?

Nochmal besten Dank für die Reihe, ich bin gespannt, wie viel Potential noch ungenutzt lasse :)

Reto
Geschrieben von Reto am 2. Juni 2026 um 19:11

Lieben Dank für das Interesse und die Blumen!

Wenn du dich bitte noch bis Freitag, 9.00 Uhr gedulden möchtest; da das Versions-Upgrade ja ganz aktuell ausgerollt wurde, habe ich das spontan in den kommenden Artikel mit aufgenommen.

Udo M.
Geschrieben von Udo M. am 3. Juni 2026 um 05:16

Müsste es unter: Welcher Weg für wen? Eigenständige Benutzerin User verwaltet selbst ~/.config/home-manager/home-anna.nix

nicht nur home.nix heißen, weil Du auch vorher sudo cp /etc/nixos/home-anna.nix /home/anna/.config/home-manager/home.nix machst oder nimmt nix einfach die .nix Datei im .config/home-manger/ Verzeichnis egal wie sie heißt?

Reto
Geschrieben von Reto am 3. Juni 2026 um 07:59

Lieber Udo, sehr aufmerksam, Danke! EDIT: Ich habe die Korrektur in den Text eingearbeitet! In der Tabelle stand home-anna.nix, aber nach dem cp-Befehl heißt die Datei auf Annas Rechner tatsächlich home.nix: bashsudo cp /etc/nixos/home-anna.nix /home/anna/.config/home-manager/home.nix Home Manager erwartet die Datei zwingend unter dem Namen home.nix – der Name ist nicht frei wählbar. home-anna.nix ist nur der Name im Admin-Repository /etc/nixos/ zur besseren Unterscheidbarkeit zwischen mehreren Nutzern. Nach dem Kopieren heißt sie auf Annas Rechner home.nix.

njrk
Geschrieben von njrk am 18. Juni 2026 um 10:01

Hi,

Thank you for this series of articles (really great).

I just noticed that the download links for the sample configuration files seem to be broken (in Part 2 for configuration.nix, flake.nix, home.nix, but also in this multi-user section for home-anna.nix and home-gast.nix).

Thanks again for the series :)

Reto
Geschrieben von Reto am 18. Juni 2026 um 20:19

I fixed it