VMware ESXi and vSphere Cluster Management

Das Verzeichnis /etc/skel unter Linux

Erfahren Sie, wie /etc/skel als Vorlage für neue Home-Verzeichnisse funktioniert, welche Dateien geeignet sind und wie Sie Rechte, useradd und Tests korrekt einsetzen.

/etc/skel ist ein systemweites Vorlagenverzeichnis für neue lokale Benutzerkonten. Beim Anlegen eines Kontos mit Home-Verzeichnis werden die dort enthaltenen Dateien und Verzeichnisse in das neue Home-Verzeichnis übernommen. Dadurch können Administratoren eine einheitliche Grundkonfiguration, Willkommensdokumente oder vorbereitete Arbeitsordner bereitstellen.

Das Home-Verzeichnis ist das persönliche Arbeitsverzeichnis eines Benutzers, zum Beispiel /home/anna. Ein Benutzerkonto umfasst unter anderem einen Benutzernamen, eine UID, eine primäre Gruppe und – sofern gewünscht – ein Home-Verzeichnis.

/etc/skel wirkt dabei als Quelle für die Erstausstattung. Es ist keine laufende Profilverwaltung: Änderungen an diesem Verzeichnis werden nicht automatisch auf bereits vorhandene Benutzerkonten verteilt.

Wie /etc/skel funktioniert

Die Vorlagen werden beim Erstellen eines Benutzerkontos ausgewertet. Voraussetzung ist normalerweise, dass das Home-Verzeichnis bei diesem Vorgang angelegt wird. Beim Werkzeug useradd geschieht das beispielsweise mit der Option -m.

sudo useradd -m testuser

Vereinfacht sieht der Ablauf so aus:

  1. Die Benutzerverwaltung legt das Konto und – sofern angefordert – das Home-Verzeichnis an.
  2. Die Dateien und Verzeichnisse aus dem konfigurierten Skel-Verzeichnis werden kopiert.
  3. Das neue Home-Verzeichnis enthält nun die übernommenen Startdateien.
  4. Die kopierten Dateien gehören normalerweise dem neu angelegten Benutzer und dessen primärer Gruppe.

Typische Inhalte

Viele Dateien in /etc/skel sind sogenannte Dotfiles. Ein Dotfile ist eine Datei, deren Name mit einem Punkt beginnt. Solche Dateien werden in normalen Dateilisten meist verborgen und enthalten häufig benutzerspezifische Konfigurationen.

Vorlagendatei oder VerzeichnisZweck im neuen Home-VerzeichnisGeeignet als gemeinsame VorlageHinweis
.bashrcGrundkonfiguration interaktiver Bash-SitzungenJa, nach PrüfungNur allgemeine Einstellungen verwenden, keine persönlichen oder systemspezifischen Pfade.
.profileUmgebungs- und Login-KonfigurationJa, nach PrüfungAuf Shell- und distributionsabhängige Besonderheiten achten.
READMEWillkommens- oder AnleitungstextJaGeeignet für Hinweise zu Regeln, Verzeichnissen oder Ansprechstellen.
Vorlagen/Vorbereiteter Ordner für ArbeitsdateienJaNur allgemeine Beispieldateien aufnehmen.
.bash_historyBefehlshistorie der BashÜblicherweise neinDie Historie ist benutzerspezifisch und sollte nicht als gemeinsame Verlaufsvorlage gepflegt werden.

.bashrc und .profile

.bashrc wird typischerweise für interaktive Bash-Sitzungen verwendet. Dort können beispielsweise einheitliche Aliase oder eine geprüfte Shell-Einstellung stehen. Eine .profile-Datei wird bei Login-Shells beziehungsweise durch die jeweilige Shell-Startlogik berücksichtigt und kann Umgebungsvariablen setzen.

Die genaue Verwendung hängt von Distribution, Shell und Startart ab. Eine Konfiguration sollte deshalb mit einem normalen, nicht privilegierten Testkonto geprüft werden.

.bash_history

.bash_history speichert normalerweise Befehle, die ein Benutzer in Bash ausgeführt hat. Ihr Inhalt ist persönlich und kann sensible Informationen enthalten. Eine leere Datei kann technisch kopiert werden, ist aber als gemeinschaftlich gepflegte Vorlage meist wenig sinnvoll. Vor allem dürfen keine echten Befehle, Zugangsdaten oder host-spezifischen Informationen in /etc/skel landen.

Eigene Vorlagen bereitstellen

Dateien und Verzeichnisse können direkt unter /etc/skel angelegt oder dorthin kopiert werden. Da /etc normalerweise nur mit administrativen Rechten verändert werden darf, ist dafür in der Regel sudo erforderlich.

README für künftige Benutzer

Das folgende Beispiel legt eine Willkommensdatei für alle künftig angelegten Benutzerkonten an:

sudo tee /etc/skel/README > /dev/null <<'EOF'
Willkommen auf diesem System.
Bitte beachten Sie die lokalen Nutzungsregeln.
EOF

Danach sollten die Rechte der Vorlage kontrolliert werden:

ls -l /etc/skel/README

Die Datei muss für den Kopiervorgang lesbar sein. Eine allgemeine README enthält normalerweise keine vertraulichen Daten und kann für den neuen Benutzer lesbar sein.

Standard-Bash-Konfiguration

Eine geprüfte Grundkonfiguration kann als /etc/skel/.bashrc bereitgestellt werden:

sudo cp /pfad/zu/gepruefter.bashrc /etc/skel/.bashrc
sudo chmod 644 /etc/skel/.bashrc

Vor dem produktiven Einsatz sollte die Datei mit einem Testkonto geprüft werden. Einstellungen, die nur für den Administrator gelten, absolute Pfade zu einem bestimmten Rechner oder eingebettete Geheimnisse gehören nicht in eine allgemeine Vorlage.

Vorlagenordner

Auch Verzeichnisse werden übernommen. Ein vorbereiteter Ordner kann beispielsweise so erstellt werden:

sudo mkdir -p /etc/skel/Vorlagen
sudo cp beispiel.txt /etc/skel/Vorlagen/

Bei Verzeichnissen müssen nicht nur die Dateien, sondern auch die Zugriffsrechte der übergeordneten Verzeichnisse passen. Zum Betreten eines Verzeichnisses ist das Ausführungsrecht erforderlich.

Übernahme mit einem Testbenutzer prüfen

Zeigen Sie zunächst den vollständigen Inhalt des Vorlagenverzeichnisses an. Die Option -a schließt versteckte Dateien ein:

ls -la /etc/skel

Legen Sie anschließend ein Testkonto mit Home-Verzeichnis an:

sudo useradd -m testuser

Kontrollieren Sie das neue Home-Verzeichnis:

sudo ls -la /home/testuser

Die Datei sollte nun als /home/testuser/README vorhanden sein. Eigentümer und Rechte lassen sich mit stat prüfen:

sudo stat -c '%U:%G %a %n' /home/testuser/README

Normalerweise zeigt die Ausgabe den neuen Benutzer und dessen primäre Gruppe als Eigentümer. Nach dem Test kann das Konto einschließlich seines Home-Verzeichnisses entfernt werden:

sudo userdel -r testuser

Wirkung späterer Änderungen

AktionBestehende BenutzerNeu angelegte Benutzer
Datei zu /etc/skel hinzufügenErhalten die Datei nicht automatisch.Erhalten die Datei bei angelegtem Home-Verzeichnis.
Vorlagendatei ändernIhre bereits kopierte Datei bleibt unverändert.Erhalten die geänderte Version.
Vorlagendatei entfernenBereits kopierte Dateien bleiben bestehen.Erhalten diese Datei künftig nicht mehr.

Wer eine neue Datei auch in bestehenden Home-Verzeichnissen benötigt, braucht einen separaten, kontrollierten Verteilungs- oder Migrationsschritt. Dabei müssen persönliche Anpassungen berücksichtigt und unbeabsichtigtes Überschreiben vermieden werden.

Dateirechte und Eigentümerschaft

Dateirechte bestimmen, wer eine Datei lesen, verändern oder ausführen darf. Sie gelten für Eigentümer, Gruppe und andere Benutzer. Vorlagen unter /etc/skel müssen so zugreifbar sein, dass das Benutzerverwaltungswerkzeug sie lesen und Verzeichnisse betreten kann.

Nach dem Kopieren gehören die Dateien im neuen Home-Verzeichnis normalerweise dem neu angelegten Benutzer. Das ist wichtig, weil der Benutzer seine Konfigurationen selbst lesen und – sofern vorgesehen – ändern können muss.

  • Allgemeine Text- und Konfigurationsdateien sollten nur so offen wie nötig sein, häufig beispielsweise mit Leserechten für den Eigentümer und gegebenenfalls die Gruppe.
  • Verzeichnisse benötigen für den Zugriff passende Ausführungsrechte.
  • Private Schlüssel, Zugangsdaten, Tokens und persönliche Daten gehören nicht in /etc/skel.
  • Zu offene Rechte können vertrauliche Konfigurationsdaten für andere lokale Benutzer sichtbar machen.
  • Zu restriktive Rechte können dazu führen, dass der neue Benutzer seine eigene Datei nicht sinnvoll verwenden kann.

Zusammenspiel mit useradd und adduser

useradd ist ein eher niedrigstufiges Werkzeug zum Anlegen lokaler Benutzer. Mit -m wird das Home-Verzeichnis erstellt. Mit -k lässt sich für einen einzelnen Aufruf eine alternative Skel-Quelle angeben:

sudo useradd -m -k /pfad/zu/vorlagen testuser

adduser ist je nach Distribution ein benutzerfreundlicheres Werkzeug oder ein Wrapper um die eigentliche Benutzerverwaltung. Es kann eigene Voreinstellungen, Dialoge und Abläufe verwenden. Deshalb sollten Administratoren die Dokumentation der jeweiligen Distribution und die tatsächlich verwendeten Optionen beachten.

Bei useradd können Standardwerte in /etc/default/useradd stehen. Je nach System ist dort unter anderem der Skel-Pfad oder die Vorgabe für das Erstellen von Home-Verzeichnissen hinterlegt:

sudo grep -E '^(SKEL|CREATE_HOME)' /etc/default/useradd

Wenn kein Home-Verzeichnis angelegt wird, gibt es normalerweise auch kein Ziel, in das die Vorlagen kopiert werden können. Außerdem kann ein Werkzeug oder eine Option einen anderen Skel-Pfad verwenden. Der Inhalt von /etc/skel ist daher nicht in jeder Umgebung automatisch die tatsächlich verwendete Quelle.

Fehlerbehebung

Neue Benutzer erhalten keine Dateien

Prüfen Sie zuerst, ob das Home-Verzeichnis tatsächlich existiert. Kontrollieren Sie anschließend das verwendete Werkzeug und die Optionen, insbesondere ob -m verwendet wurde. Bei einer individuellen Konfiguration oder der Option -k kann ein anderer Skel-Pfad aktiv sein.

  • Existiert beispielsweise /home/neuername?
  • Wurde das Konto mit useradd -m oder einem entsprechenden adduser-Ablauf angelegt?
  • Wurde ein alternativer Pfad über -k oder die Konfiguration festgelegt?
  • Sind /etc/skel, seine Unterverzeichnisse und die Vorlagendateien zugreifbar?

Eine neue Datei erscheint nicht bei bestehenden Benutzern

Das ist das normale Verhalten. /etc/skel wird bei der Kontoanlage als Vorlage verwendet, nicht als zentrale Synchronisationsquelle. Vergleichen Sie das bestehende Konto mit einem frisch angelegten Testkonto. Für vorhandene Benutzer muss die Datei gezielt und kontrolliert ausgerollt werden.

Kopierte Dateien haben unerwartete Rechte

Vergleichen Sie die Rechte und Eigentümer der Vorlage mit denen im neuen Home-Verzeichnis. Prüfen Sie auch die Rechte der übergeordneten Verzeichnisse. Testen Sie die Konfiguration anschließend als nicht privilegierter Benutzer. Eine Datei kann zwar kopiert werden, aber wegen falscher Rechte, unpassender Pfade oder fehlender Verzeichnisrechte trotzdem unbrauchbar sein.

Administrative Grenzen

  • Verwenden Sie /etc/skel für allgemeine Startkonfigurationen, nicht für persönliche Daten.
  • Legen Sie keine Geheimnisse, privaten Schlüssel, Zugangsdaten oder host-spezifischen Informationen in gemeinsame Vorlagen.
  • Gehen Sie nicht davon aus, dass Änderungen laufende Benutzerprofile zentral verwalten.
  • Planen Sie für bestehende Konten separate Migrationsschritte mit Sicherung, Prüfung und einer Strategie gegen unbeabsichtigtes Überschreiben.
  • Testen Sie Änderungen zuerst mit einem temporären Konto und entfernen Sie dieses danach sicher.

Prüfungsrelevante Zusammenfassung

  • /etc/skel ist ein systemweites Vorlagenverzeichnis für neue lokale Benutzer-Home-Verzeichnisse.
  • Die Übernahme erfolgt bei der Kontoanlage und normalerweise nur, wenn ein Home-Verzeichnis erstellt wird.
  • Dotfiles wie .bashrc und .profile sind typische Vorlagen.
  • .bash_history enthält benutzerspezifische Historie und ist deshalb meist keine sinnvolle gemeinsame Vorlage.
  • Spätere Änderungen an /etc/skel betreffen neue Konten, nicht automatisch bestehende Benutzer.
  • Vorlagen müssen lesbar und Verzeichnisse zugreifbar sein; die Kopien gehören normalerweise dem neuen Benutzer.
  • useradd -m, adduser, -k und distributionsabhängige Standardwerte können den Ablauf beeinflussen.