Benutzer-Werkzeuge

Webseiten-Werkzeuge


sammlung:wichtige_konfigurationsdateien

Wichtige Konfigurationsdateien unter Linux

Linux-Systeme werden hauptsächlich über Textdateien im /etc-Verzeichnis konfiguriert. Diese Seite bietet eine Übersicht der wichtigsten Konfigurationsdateien und ihrer Funktion.

System-Konfiguration

/etc/fstab

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

/etc/hosts

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:

  • Lokale Testsysteme ohne DNS
  • Überschreiben von DNS-Einträgen
  • Schnellerer Zugriff auf häufig genutzte Hosts
  • Blockieren von Websites (auf 127.0.0.1 umleiten)

/etc/resolv.conf

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 Hostnamen
  • domain - Lokale Domain

Achtung: 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

/etc/hostname

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

/etc/timezone

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

Netzwerk-Konfiguration

/etc/network/interfaces

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).

/etc/netplan/*.yaml

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-Konfiguration

/etc/ssh/sshd_config

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

/etc/ssh/ssh_config

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 und Gruppen

/etc/passwd

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

/etc/shadow

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).

/etc/group

Gruppen-Datenbank - Informationen über alle Systemgruppen.

# Format: groupname:x:GID:members
sudo:x:27:user1,user2
docker:x:999:user1

/etc/sudoers

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

/etc/skel/

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-Skript

Boot und Init

/etc/default/grub

GRUB-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

/etc/systemd/system/

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

Paketmanagement

/etc/apt/sources.list

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

Weitere wichtige Dateien

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

Best Practices

  • Backup vor Änderungen: sudo cp /etc/datei /etc/datei.backup
  • Kommentare nutzen: # Geändert am 2024-01-15: Grund…
  • Syntax prüfen: Viele Tools haben Test-Optionen (sshd -t, nginx -t, etc.)
  • Versionskontrolle: /etc in Git verwalten (etckeeper)
  • Dokumentation: Änderungen dokumentieren

Siehe auch

sammlung/wichtige_konfigurationsdateien.txt · Zuletzt geändert: von 127.0.0.1