Linux Deutsch

Das Verzeichnis /etc/skel: Standarddateien für neue Linux-Benutzerkonten

Erfahren Sie, wie /etc/skel Vorlagen für neue Home-Verzeichnisse bereitstellt, wie useradd und adduser damit arbeiten und worauf Rechte und Sicherheit achten müssen.

/etc/skel ist ein systemweites Vorlagenverzeichnis für neue Linux-Benutzerkonten. Beim Anlegen eines Kontos können Dateien und Unterverzeichnisse daraus in das neu erstellte Home-Verzeichnis übernommen werden. So erhalten neue Benutzer eine einheitliche Grundkonfiguration, Hinweise und vorbereitete Arbeitsverzeichnisse.

Das eigene Arbeitsverzeichnis eines Kontos heißt Home-Verzeichnis und liegt bei lokalen Konten meist unter /home/benutzername. Die englische Bezeichnung für ein Vorlagenverzeichnis wie /etc/skel lautet Skeleton-Verzeichnis.

Wie /etc/skel funktioniert

Der typische Ablauf sieht so aus:

  1. Die Administration legt Vorlagen in /etc/skel ab.
  2. Ein neues lokales Benutzerkonto wird angelegt.
  3. Das Verwaltungswerkzeug erstellt bei Bedarf ein Home-Verzeichnis.
  4. Die Dateien und Unterverzeichnisse aus dem Skeleton-Verzeichnis werden in dieses neue Home-Verzeichnis kopiert.

Die Übernahme findet also während der Kontoerstellung statt und setzt normalerweise voraus, dass auch ein Home-Verzeichnis angelegt wird. Das genaue Verhalten hängt vom verwendeten Werkzeug und seinen Optionen ab.

useradd und adduser

useradd ist ein eher niedrigstufiges Kommando zur Anlage lokaler Benutzerkonten. Mit -m wird das Home-Verzeichnis erstellt, sofern es nicht bereits durch die Standardkonfiguration aktiviert ist:

sudo useradd -m testskel

Auf vielen Systemen kann geprüft werden, welche Vorgaben useradd verwendet:

useradd -D

Die Ausgabe enthält je nach Implementierung unter anderem die Vorgabe für das Skeleton-Verzeichnis. Ein alternatives Verzeichnis kann für eine einzelne Kontoanlage mit -k angegeben werden:

sudo useradd -m -k /pfad/zum/skel testbenutzer

adduser ist auf manchen Distributionen ein benutzerfreundlicheres, häufig interaktives Verwaltungswerkzeug. Optionen, Dialoge und das genaue Verhalten unterscheiden sich je nach Distribution. Bei Problemen sollte daher die lokale Dokumentation des verwendeten Werkzeugs geprüft werden.

Werkzeug: useradd

Typische Verwendung: direkte Anlage eines lokalen Kontos; mit -m wird ein Home-Verzeichnis angelegt.

Zu prüfen: useradd -D, insbesondere die Skeleton-Vorgabe und die Standardoptionen.

Werkzeug: adduser

Typische Verwendung: distributionsabhängige, oft interaktive Benutzeranlage.

Zu prüfen: die Manpage und die distributionsspezifischen Optionen für Home-Verzeichnis und Vorlagen.

Welche Inhalte gehören in /etc/skel?

Geeignet sind Inhalte, die für viele oder alle neuen Konten einen sinnvollen Ausgangspunkt darstellen:

Vorlagenelement: .bashrc

Zweck: Standardkonfiguration für interaktive, nicht als Login gestartete Bash-Sitzungen.

Hinweis: Vor der Verteilung mit einem Testkonto prüfen.

Vorlagenelement: .profile

Zweck: Einstellungen für Login-Sitzungen.

Hinweis: Nicht jede Shell wertet diese Datei gleich aus.

Vorlagenelement: .config/

Zweck: Unterverzeichnisse für Konfigurationsdateien von Programmen.

Hinweis: Nur geprüfte, lokal passende Konfigurationen ablegen.

Vorlagenelement: README

Zweck: Willkommenshinweise, lokale Regeln oder erste Schritte.

Hinweis: Eine neutrale, allgemeine Datei ist meist unkritisch.

Vorlagenelement: Vorlagen/

Zweck: vorbereitete Dokumente, Musterdateien oder Projektstrukturen.

Hinweis: Inhalte und Leserechte bewusst festlegen.

Dateien und Verzeichnisse, deren Name mit einem Punkt beginnt, heißen Punktdateien. Viele Dateimanager und ls ohne Zusatzoption zeigen sie nicht an. Mit ls -la werden auch diese Einträge sichtbar.

Eine Datei wie .bash_history sollte normalerweise nicht als allgemeine Vorlage in /etc/skel liegen. Bash erzeugt und aktualisiert die Kommandohistorie gewöhnlich während der Benutzung. Eine vorgegebene History-Datei könnte außerdem persönliche oder irreführende Inhalte verteilen.

Praktisches Beispiel: README für neue Konten

Zuerst wird der aktuelle Inhalt des Vorlagenverzeichnisses einschließlich Punktdateien angezeigt:

sudo ls -la /etc/skel

Nun wird eine einfache Willkommensdatei angelegt:

sudo sh -c 'printf "%s\n" "Willkommen auf diesem System." > /etc/skel/README'

Für eine allgemeine README-Datei sind beispielsweise Leserechte für alle und Schreibrechte nur für den Eigentümer angemessen:

sudo chmod 644 /etc/skel/README

Ein Unterverzeichnis für Musterdateien kann ebenfalls vorbereitet werden:

sudo mkdir -p /etc/skel/Vorlagen

Eine geprüfte Bash-Konfiguration oder eine andere Vorlage kann anschließend in /etc/skel abgelegt werden. Änderungen an .bashrc sollten immer zuerst mit einem Testkonto geprüft werden, weil ein Syntaxfehler oder ein nicht vorhandenes Programm die Shell beeinflussen kann.

Testkonto anlegen und Übernahme prüfen

Nachdem die Vorlagen vor der Kontoerstellung eingerichtet wurden, kann ein Testkonto angelegt werden:

sudo useradd -m testskel
sudo ls -la /home/testskel

In der Ausgabe sollten unter anderem README, eventuell .bashrc und die angelegte Verzeichnisstruktur erscheinen. Die Punktdateien sind nur sichtbar, weil -a verwendet wird.

Nach dem Test sollte das Konto einschließlich seines Home-Verzeichnisses wieder entfernt werden:

sudo userdel -r testskel

Neue und bestehende Konten

Aktion: Datei zu /etc/skel hinzufügen

Neues Benutzerkonto: Die Datei kann bei der Home-Erstellung übernommen werden.

Bestehendes Benutzerkonto: Keine automatische Änderung.

Aktion: Datei in /etc/skel ändern

Neues Benutzerkonto: Die geänderte Version kann als Vorlage dienen.

Bestehendes Benutzerkonto: Bereits vorhandene Dateien bleiben unverändert.

Aktion: Datei aus /etc/skel entfernen

Neues Benutzerkonto: Die entfernte Vorlage wird nicht mehr übernommen.

Bestehendes Benutzerkonto: Eine bereits kopierte Datei wird nicht gelöscht.

Für bestehende Konten ist eine separate, bewusst geplante Verteilung erforderlich. Vor einer Kopieraktion sollten Home-Verzeichnisse gesichert und persönliche Anpassungen geprüft werden. Persönliche Konfigurationsdateien dürfen nicht unkontrolliert überschrieben werden. Bei einer manuellen Übertragung müssen außerdem Eigentümer und Berechtigungen passend zum jeweiligen Benutzer gesetzt werden.

Eigentümer, Dateirechte und Sicherheit

Die Inhalte von /etc/skel werden normalerweise administrativ verwaltet. Beim Anlegen des Home-Verzeichnisses sollen die übernommenen Dateien dem neuen Benutzer gehören und nicht dauerhaft root zugeordnet sein. Welche Modi letztlich entstehen, hängt unter anderem von den Vorlagen, dem Verwaltungswerkzeug und der umask ab.

Prüfen Sie daher insbesondere:

  • Eigentümer und Gruppe der Vorlagen und der übernommenen Dateien.
  • Lesen, Schreiben und Ausführen mit ls -l beziehungsweise ls -la.
  • Ob private Konfigurationsdateien nur für den vorgesehenen Benutzer lesbar sind.
  • Ob Skripte tatsächlich ausführbar sein müssen.

In /etc/skel gehören keine Passwörter, privaten Schlüssel, Zugriffstoken, maschinenspezifischen Zugangsdaten oder persönlichen History-Daten. Ausführbare Skripte sollten nur mit den beabsichtigten Berechtigungen verteilt werden. Eine scheinbar praktische Vorlage kann sonst neue Konten mit unnötigen Rechten oder vertraulichen Daten ausstatten.

/etc/skel und die Benutzerverwaltung trennen

/etc/skel ist eine Inhaltssammlung: Dort liegen Dateien und Verzeichnisse, die als Ausgangsmaterial dienen. Die Entscheidung, ob ein Home-Verzeichnis erstellt wird, welches Skeleton-Verzeichnis verwendet wird und welche Standardwerte gelten, gehört dagegen zur Konfiguration des Benutzerverwaltungswerkzeugs.

Ein alternatives Skeleton-Verzeichnis kann beispielsweise für eine bestimmte Kontengruppe oder einen einzelnen Anwendungsfall sinnvoll sein. Es sollte jedoch ebenfalls geprüft, geschützt und dokumentiert werden. Die Vorgaben von useradd und distributionsspezifische Einstellungen von adduser sind nicht automatisch identisch.

Fehlerbehebung

Eine Vorlage erscheint nicht

  • Prüfen Sie, ob das Home-Verzeichnis überhaupt erstellt wurde.
  • Verwenden Sie bei useradd gegebenenfalls -m.
  • Kontrollieren Sie mit useradd -D, welches Skeleton-Verzeichnis als Vorgabe gilt.
  • Stellen Sie sicher, dass die Datei bereits vor der Kontoerstellung in /etc/skel lag.
  • Untersuchen Sie beide Verzeichnisse mit ls -la, damit Punktdateien nicht übersehen werden.

Ein bestehender Benutzer erhält die neue Vorlage nicht

Das ist das normale Verhalten. Die Vorlagen werden nicht laufend synchronisiert. Sichern Sie das Ziel-Home-Verzeichnis, übertragen Sie die Datei gezielt und setzen Sie anschließend Eigentümer und Rechte passend. Prüfen Sie vor dem Kopieren, ob persönliche Änderungen oder eine vorhandene Datei geschützt werden müssen.

Eine übernommene Datei gehört root

Das passiert häufig bei einer nachträglichen manuellen Kopie. Prüfen Sie die Ausgabe von ls -l. Bei einer bewusst geplanten Verteilung können chown und chmod die Eigentümerschaft und Modi korrigieren. Vertrauliche Vorlagen dürfen nicht versehentlich weltweit lesbar sein.

Die neue .bashrc verursacht Shell-Fehler

Testen Sie die Datei zunächst mit einem eigens angelegten Konto. Prüfen Sie die Bash-Syntax und entfernen Sie Annahmen über Programme, Pfade oder Umgebungsvariablen, die auf anderen Systemen fehlen könnten. Erst danach sollte die Vorlage für weitere Konten verwendet werden.

Zusammenfassung

  • /etc/skel ist ein systemweites Skeleton-Verzeichnis für neue Home-Verzeichnisse.
  • Die Übernahme erfolgt bei der Kontoerstellung und nur, wenn das verwendete Werkzeug ein Home-Verzeichnis anlegt.
  • Punktdateien wie .bashrc, .profile und .config/ sind typische Vorlagen.
  • .bash_history ist normalerweise keine sinnvolle allgemeine Startvorlage.
  • Änderungen an /etc/skel betreffen neue Konten, nicht automatisch bestehende Benutzer.
  • Vorlagen müssen auf Inhalt, Eigentümer, Rechte und vertrauliche Daten geprüft werden.

Für die Grundlagen der Verzeichnisstruktur helfen die Beiträge Linux-Verzeichnisstruktur und Filesystem Hierarchy Standard. Ergänzend sind die Themen Bash-Shell und Arten von Zugriffsrechten nützlich.