Linux-Systeme werden hauptsächlich über Textdateien im /etc-Verzeichnis konfiguriert. Diese Seite bietet eine Übersicht der wichtigsten Konfigurationsdateien und ihrer Funktion.
Filesystem Table - Automatisches Einbinden von Dateisystemen beim Systemstart.
# Beispiel /etc/fstab UUID=1234-5678 /boot/efi vfat defaults 0 1 UUID=abcd-efgh / ext4 defaults 0 1 UUID=ijkl-mnop none swap sw 0 0
| Spalte | Bedeutung |
|---|---|
| 1. Gerät/UUID | Dateisystem-Quelle |
| 2. Mountpoint | Einhängepunkt im Verzeichnisbaum |
| 3. Typ | Dateisystemtyp (ext4, xfs, vfat, etc.) |
| 4. Optionen | Mount-Optionen (defaults, ro, noatime, etc.) |
| 5. Dump | Backup-Flag (meist 0) |
| 6. Pass | Prüfreihenfolge beim Boot (0, 1 oder 2) |
Wichtige Befehle:
# fstab-Syntax prüfen sudo mount -a # Alle Einträge neu mounten sudo systemctl daemon-reload && sudo mount -a # UUID von Partitionen anzeigen sudo blkid
Siehe auch: Detaillierte fstab-Dokumentation
Hostname-zu-IP-Zuordnung - Lokale DNS-Auflösung vor Abfrage externer DNS-Server.
# Beispiel /etc/hosts 127.0.0.1 localhost 127.0.1.1 meinrechner ::1 localhost ip6-localhost 192.168.1.10 server01.local server01 192.168.1.20 nas.local nas
Format: IP-Adresse Hostname [Aliase…]
Anwendungsfälle:
DNS-Resolver-Konfiguration - Definiert DNS-Server für Namensauflösung.
# Beispiel /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
search local.domain
Wichtige Optionen:
nameserver - DNS-Server-IP (max. 3)search - Suchdomain für kurze Hostnamendomain - Lokale DomainAchtung: Auf Systemen mit systemd-resolved oder NetworkManager wird diese Datei oft automatisch generiert und sollte nicht manuell bearbeitet werden!
Moderne Alternativen:
# SystemD-resolved Status resolvectl status # NetworkManager DNS-Konfiguration nmcli device show | grep DNS
Siehe auch: IP, DNS und DHCP
System-Hostname - Name des Rechners im Netzwerk.
# Dateiinhalt
meinserver
Verwaltung:
# Hostname anzeigen hostname hostnamectl # Hostname setzen (persistent) sudo hostnamectl set-hostname neuer-name # Temporär ändern (bis Reboot) sudo hostname temp-name
System-Zeitzone - Definiert die lokale Zeitzone.
# Beispiel Europe/Berlin
Verwaltung:
# Zeitzone anzeigen timedatectl # Zeitzone setzen sudo timedatectl set-timezone Europe/Berlin # Verfügbare Zeitzonen auflisten timedatectl list-timezones
Klassische Netzwerkkonfiguration (Debian/Ubuntu ohne NetworkManager).
# Beispiel
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
Hinweis: Auf modernen Ubuntu-Systemen wird stattdessen netplan verwendet (siehe unten).
Moderne Netzwerkkonfiguration (Ubuntu ab 17.10).
# /etc/netplan/01-netcfg.yaml network: version: 2 ethernets: enp0s3: dhcp4: false addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]
Verwaltung:
# Konfiguration testen sudo netplan try # Konfiguration anwenden sudo netplan apply
Siehe auch: NetworkManager
SSH-Server-Konfiguration - Einstellungen für den SSH-Daemon.
# Wichtige Optionen Port 22 PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication no X11Forwarding no AllowUsers user1 user2
Wichtige Parameter:
| Parameter | Bedeutung | Empfehlung |
|---|---|---|
| Port | SSH-Port | Standard 22, oder geändert für mehr Sicherheit |
| PermitRootLogin | Root-Login erlauben | no (Sicherheit) |
| PasswordAuthentication | Passwort-Login erlauben | no (Key-only) |
| PubkeyAuthentication | SSH-Key-Login erlauben | yes |
| AllowUsers | Erlaubte Benutzer | Whitelist verwenden |
Nach Änderungen:
# Syntax prüfen sudo sshd -t # Service neu starten sudo systemctl restart sshd
Siehe auch: SSH-Konfiguration
SSH-Client-Konfiguration - Einstellungen für ausgehende SSH-Verbindungen.
# Beispiel Host server01 HostName 192.168.1.10 User admin Port 2222 IdentityFile ~/.ssh/id_rsa_server01 Host * ServerAliveInterval 60 ServerAliveCountMax 3
Benutzer-Datenbank - Informationen über alle Systembenutzer.
# Format: username:x:UID:GID:Kommentar:Home:Shell root:x:0:0:root:/root:/bin/bash user:x:1000:1000:User Name:/home/user:/bin/bash
| Feld | Bedeutung |
|---|---|
| 1 | Benutzername |
| 2 | Passwort (x = in /etc/shadow) |
| 3 | User ID (UID) |
| 4 | Primary Group ID (GID) |
| 5 | Kommentar/Vollständiger Name |
| 6 | Home-Verzeichnis |
| 7 | Login-Shell |
Passwort-Hashes - Verschlüsselte Passwörter (nur root lesbar).
# Format: username:hash:lastchange:min:max:warn:inactive:expire user:$6$rounds=...:18500:0:99999:7:::
Sicherheit: Diese Datei sollte nur von root gelesen werden können (Rechte 640 oder 600).
Gruppen-Datenbank - Informationen über alle Systemgruppen.
# Format: groupname:x:GID:members sudo:x:27:user1,user2 docker:x:999:user1
Sudo-Berechtigungen - Definiert wer sudo verwenden darf.
# NIEMALS direkt bearbeiten! Immer visudo verwenden! root ALL=(ALL:ALL) ALL %sudo ALL=(ALL:ALL) ALL user1 ALL=(ALL) NOPASSWD: /usr/bin/systemctl
Bearbeitung nur mit:
sudo visudo
Siehe auch: Sudo-Konfiguration
Skeleton-Verzeichnis - Vorlage für neue Benutzer-Home-Verzeichnisse.
Alle Dateien in /etc/skel/ werden beim Anlegen eines neuen Benutzers in dessen Home-Verzeichnis kopiert.
# Inhalt anzeigen ls -la /etc/skel/ # Beispiel: Eigene Vorlage erstellen sudo nano /etc/skel/.bashrc sudo cp /etc/skel/.bashrc /etc/skel/.bash_aliases
Typischer Inhalt:
.bashrc - Bash-Konfiguration.profile - Login-Skript.bash_logout - Logout-SkriptGRUB-Bootloader-Konfiguration - Einstellungen für den Bootvorgang.
# Wichtige Optionen GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""
Nach Änderungen:
sudo update-grub # oder sudo grub-mkconfig -o /boot/grub/grub.cfg
SystemD-Unit-Dateien - Dienste und Timer.
Eigene Service-Dateien oder Overrides ablegen.
# Service-Override erstellen sudo systemctl edit service-name # Eigenen Service anlegen sudo nano /etc/systemd/system/myservice.service sudo systemctl daemon-reload sudo systemctl enable myservice
Siehe auch: SystemD-Grundlagen
APT-Repository-Quellen (Debian/Ubuntu).
# Beispiel deb http://de.archive.ubuntu.com/ubuntu/ jammy main restricted deb http://de.archive.ubuntu.com/ubuntu/ jammy-updates main restricted deb http://security.ubuntu.com/ubuntu jammy-security main restricted
Zusätzliche Repositories:
# In /etc/apt/sources.list.d/ ls /etc/apt/sources.list.d/
Nach Änderungen:
sudo apt update
Siehe auch: Paketmanagement
| Datei | Funktion |
|---|---|
/etc/crontab | System-Cron-Jobs |
/etc/environment | System-weite Umgebungsvariablen |
/etc/profile | System-weites Login-Skript |
/etc/bash.bashrc | System-weite Bash-Konfiguration |
/etc/motd | Message of the Day (Login-Nachricht) |
/etc/issue | Login-Banner (vor Anmeldung) |
/etc/login.defs | Login-Einstellungen |
/etc/security/limits.conf | Ressourcen-Limits für Benutzer |
/etc/sysctl.conf | Kernel-Parameter |
/etc/modules | Kernel-Module beim Boot laden |
sudo cp /etc/datei /etc/datei.backup# Geändert am 2024-01-15: Grund…sshd -t, nginx -t, etc.)/etc in Git verwalten (etckeeper)