===== skel ===== **Kurzfassung:** ''/etc/skel'' ist das Standard-Skelettverzeichnis für neue Benutzer. Der Inhalt wird beim Anlegen eines Users in dessen Home kopiert, damit alle Nutzer eine konsistente Grundkonfiguration erhalten. ==== Übersicht ==== Beim Erstellen neuer Benutzer kopieren ''useradd'' und ''adduser'' automatisch alle Dateien und Ordner aus ''/etc/skel'' in das Home-Verzeichnis. Damit lassen sich Standard-Ordner, Shell-Konfigurationen, SSH-Templates und Dokumentationen zentral pflegen. ==== Voraussetzungen ==== * Root-Privilegien oder Sudo-Zugriff * Kenntnis der Benutzerverwaltung (useradd/adduser) * Grundkenntnisse von Shell- und Konfigurationsdateien ==== Standard-Inhalt von /etc/skel ==== # Verzeichnisinhalt anzeigen ls -la /etc/skel # Typische Dateien (Distribution abhängig) # .bashrc # .profile oder .bash_profile # .bash_logout # .bash_aliases (optional) # .ssh/ (optional) ==== Systemweite Shell-Dateien (ergänzend) ==== /etc/profile # Login-Shells (systemweit) /etc/bash.bashrc # Interaktive Shells (Debian/Ubuntu) /etc/profile.d/*.sh # Drop-ins für globale Shell-Einstellungen ==== Wie /etc/skel verwendet wird ==== # Benutzer mit Home-Verzeichnis anlegen sudo useradd -m -s /bin/bash alice # Alternativ (Debian/Ubuntu, interaktiv) sudo adduser bob # Home prüfen ls -la /home/alice ==== /etc/skel erweitern (Beispiele) ==== === 1) Standard-Ordnerstruktur === sudo mkdir -p /etc/skel/{bin,projects,logs,tmp,Documents,Downloads} === 2) Aliases für alle Benutzer === sudo tee /etc/skel/.bash_aliases > /dev/null <<'EOF' alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' EOF === 3) Standard-Editor und Prompt in .bashrc === sudo tee -a /etc/skel/.bashrc > /dev/null <<'EOF' export EDITOR=vim export VISUAL=vim PS1='\u@\h:\w\$ ' EOF === 4) .bash_profile anlegen === sudo tee /etc/skel/.bash_profile > /dev/null <<'EOF' # Login-Shell: .bashrc einbinden if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi export PATH="$HOME/bin:$HOME/.local/bin:$PATH" EOF === 5) SSH-Template (nur config, keine Keys!) === sudo mkdir -p /etc/skel/.ssh sudo chmod 700 /etc/skel/.ssh sudo tee /etc/skel/.ssh/config > /dev/null <<'EOF' Host * ServerAliveInterval 60 ServerAliveCountMax 3 ForwardAgent no EOF sudo chmod 600 /etc/skel/.ssh/config === 6) Standard-Git-Konfiguration === sudo tee /etc/skel/.gitconfig > /dev/null <<'EOF' [user] name = Vorname Nachname email = user@example.com [core] editor = vim [alias] st = status co = checkout br = branch EOF === 7) README für neue Benutzer === sudo tee /etc/skel/README.txt > /dev/null <<'EOF' Willkommen! Dieses Home-Verzeichnis wurde automatisch erstellt. Standard-Ordner: - ~/projects - ~/bin - ~/logs Bei Fragen: admin@example.com EOF ==== Mehrere Skeletons (Benutzerrollen) ==== # Entwickler-Skeleton sudo mkdir -p /etc/skel.developer sudo cp -r /etc/skel/. /etc/skel.developer/ # Admin-Skeleton sudo mkdir -p /etc/skel.admin sudo cp -r /etc/skel/. /etc/skel.admin/ # Benutzer mit bestimmtem Skeleton anlegen sudo useradd -m -k /etc/skel.developer -s /bin/bash devuser ==== Änderungen testen ==== sudo useradd -m -s /bin/bash testuser ls -la /home/testuser sudo userdel -r testuser ==== Hinweise zu useradd vs. adduser ==== **useradd (low-level):** * Standard-Defaults in ''/etc/default/useradd'' * Home nur mit ''-m'' **adduser (Debian/Ubuntu):** * Interaktiv, erstellt Home automatisch * Defaults in ''/etc/adduser.conf'' sudo useradd -D sudo cat /etc/adduser.conf ==== Hinweise ==== **Best Practices:** - /etc/skel nur für Standard-Dateien verwenden - Keine sensiblen Daten in /etc/skel ablegen - Änderungen mit Testuser prüfen - SSH: nur ''config'', keine privaten Keys - README/Docs für neue Benutzer beilegen **Häufige Fehler vermeiden:** - /etc/skel wirkt nur bei NEUEN Benutzern, nicht retroaktiv - Falsche Rechte auf .ssh/.gitconfig → Sicherheitsrisiko - /etc/skel nicht für systemweite Konfigurationen nutzen ==== Siehe auch ==== * [[sammlung:benutzerverwaltung|Benutzerverwaltung]] * [[sammlung:bash_profile_bashrc|bashrc und Profile]] * [[sammlung:ssh|SSH]] * [[sammlung:git|Git]] ==== Quellen ==== * [[https://man7.org/linux/man-pages/man8/useradd.8.html|useradd man page]] * [[https://man7.org/linux/man-pages/man8/adduser.8.html|adduser man page]] ---- {{tag>skel users /etc provisioning defaults}} ----