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:
- Die Administration legt Vorlagen in
/etc/skelab. - Ein neues lokales Benutzerkonto wird angelegt.
- Das Verwaltungswerkzeug erstellt bei Bedarf ein Home-Verzeichnis.
- 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.
Welche Inhalte gehören in /etc/skel?
Geeignet sind Inhalte, die für viele oder alle neuen Konten einen sinnvollen Ausgangspunkt darstellen:
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 testskelsudo 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
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 -lbeziehungsweisels -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
useraddgegebenenfalls-m. - Kontrollieren Sie mit
useradd -D, welches Skeleton-Verzeichnis als Vorgabe gilt. - Stellen Sie sicher, dass die Datei bereits vor der Kontoerstellung in
/etc/skellag. - 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/skelist 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,.profileund.config/sind typische Vorlagen. .bash_historyist normalerweise keine sinnvolle allgemeine Startvorlage.- Änderungen an
/etc/skelbetreffen 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.