====== Skeleton-Dateien für Bash ======
**.bashrc und .bash_profile**
==== Beschreibung ====
Skeleton-Dateien sind Vorlagen, die beim Anlegen neuer Benutzer automatisch in deren Home-Verzeichnis kopiert werden. Dazu gehören unter anderem `.bashrc` und `.bash_profile`. Es können auch mehrere //skeleton Datein// angelegt werden.
==== Syntax ====
Die Skeleton-Dateien liegen in der Regel im Verzeichnis:
/etc/skel/
Beim Erstellen eines neuen Benutzers mit `useradd` werden alle Dateien aus diesem Verzeichnis ins Home-Verzeichnis des neuen Benutzers kopiert.
===== Wichtige Dateien =====
^ Datei ^ Zweck |
| `.bashrc` | Wird bei **interaktiven, nicht-Login-Shells** geladen; enthält Shell-Optionen, Aliase und Funktionen. |
| `.bash_profile` | Wird bei **Login-Shells** geladen; kann `.bashrc` einbinden. |
| `.bash_logout` | Wird beim Beenden einer Login-Shell ausgeführt. |
| `.profile` | Alternative zu `.bash_profile` (wird v. a. bei Debian/Ubuntu verwendet). |
===== Konfiguration =====
* Änderungen an `/etc/skel/` wirken nur für **neu erstellte Benutzer**.
* Bestehende Benutzer müssen ihre `.bashrc` oder `.bash_profile` manuell anpassen.
* Systemweite Dateien:
- `/etc/bash.bashrc` → gilt für alle interaktiven Shells.
- `/etc/profile` → gilt für alle Login-Shells.
===== Beispiele =====
* **Skeleton-Datei anpassen**
sudo vi /etc/skel/.bashrc
* **Neue Benutzer mit angepassten Skeleton-Dateien**
sudo useradd -m neueruser
sudo passwd neueruser
* **Mehrere //skeleton// Dateien anlegen**
/etc/skel/skel_dev01 mit .bashrc, .profile, .bash_logout
/etc/skel/skel_prod01/ mit .bashrc, .profile, .bash_logout
* **Verwenden der //skeleton// Dateien**
useradd -m -k /etc/skel_dev01 -s /bin/bash -d /home/neueruser neueruser
===== Hinweis =====
Die Distributionen verwenden zum Teil verschidene Schreibweisen innerhalb von //**/etc/skel**//.
===== Alternativen =====
* Manuelle Anpassung der Dateien im Home-Verzeichnis bestehender Benutzer.
* Nutzung von `/etc/profile.d/*.sh` für systemweite Shell-Initialisierung.
===== Weitere Informationen =====
man bash
man useradd
man bashrc