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:
- Die Benutzerverwaltung legt das Konto und – sofern angefordert – das Home-Verzeichnis an.
- Die Dateien und Verzeichnisse aus dem konfigurierten Skel-Verzeichnis werden kopiert.
- Das neue Home-Verzeichnis enthält nun die übernommenen Startdateien.
- 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 Verzeichnis | Zweck im neuen Home-Verzeichnis | Geeignet als gemeinsame Vorlage | Hinweis |
|---|---|---|---|
.bashrc | Grundkonfiguration interaktiver Bash-Sitzungen | Ja, nach Prüfung | Nur allgemeine Einstellungen verwenden, keine persönlichen oder systemspezifischen Pfade. |
.profile | Umgebungs- und Login-Konfiguration | Ja, nach Prüfung | Auf Shell- und distributionsabhängige Besonderheiten achten. |
README | Willkommens- oder Anleitungstext | Ja | Geeignet für Hinweise zu Regeln, Verzeichnissen oder Ansprechstellen. |
Vorlagen/ | Vorbereiteter Ordner für Arbeitsdateien | Ja | Nur allgemeine Beispieldateien aufnehmen. |
.bash_history | Befehlshistorie der Bash | Üblicherweise nein | Die 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
| Aktion | Bestehende Benutzer | Neu angelegte Benutzer |
|---|---|---|
Datei zu /etc/skel hinzufügen | Erhalten die Datei nicht automatisch. | Erhalten die Datei bei angelegtem Home-Verzeichnis. |
| Vorlagendatei ändern | Ihre bereits kopierte Datei bleibt unverändert. | Erhalten die geänderte Version. |
| Vorlagendatei entfernen | Bereits 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 -moder einem entsprechendenadduser-Ablauf angelegt? - Wurde ein alternativer Pfad über
-koder 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/skelfü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/skelist 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
.bashrcund.profilesind typische Vorlagen. .bash_historyenthält benutzerspezifische Historie und ist deshalb meist keine sinnvolle gemeinsame Vorlage.- Spätere Änderungen an
/etc/skelbetreffen 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,-kund distributionsabhängige Standardwerte können den Ablauf beeinflussen.