SYSCTL.D(5)

BEZEICHNUNG
sysctl.d - Kernel-Parameter beim Systemstart konfigurieren

ÜBERSICHT

/etc/sysctl.d/*.conf

/run/sysctl.d/*.conf

/usr/lib/sysctl.d/*.conf

BESCHREIBUNG

Beim Systemstart liest systemd-sysctl.service(8) Konfigurationsdateien aus den obigen Verzeichnissen, um sysctl(8)-Kernelparameter zu konfigurieren.

KONFIGURATIONSFORMAT

Die Konfigurationsdateien enthalten eine Liste von durch Zeilenumbrüchen getrennten Variablenzuweisungen. Leere Zeilen und Zeilen, deren erstes von Leerraumzeichen verschiedenes Zeichen ein »#« oder »;« ist, werden ignoriert.

Beachten Sie, dass entweder »/« oder ».« als Trenner innerhalb von Sysctl-Variablennamen benutzt werden kann. Falls der erste Trenner ein Schrägstrich ist, werden die restlichen Schrägstriche und Punkte unverändert gelassen. Falls der erste Trenner ein Punkt ist, werden Punkte und Schrägstriche ausgetauscht. »kernel.domainname=foo« und »kernel/domainname=foo« sind äquivalent und führen dazu, dass »foo« nach /proc/sys/kernel/domainname geschrieben wird. Sowohl »net.ipv4.conf.enp3s0/200.forwarding« als auch »net/ipv4/conf/enp3s0.200/forwarding« beziehen sich auf /proc/sys/net/ipv4/conf/enp3s0.200/forwarding.

Sämtliche Berechtigungsfehler und Versuche, Variablen zu schreiben, die auf dem lokalen System nicht definiert sind, werden protokolliert, führen aber nicht zum Fehlschlag des Dienstes. Wird darüberhinaus einer Variablenzuweisung ein einzelnes »-«-Zeichen vorangestellt, wird der Fehler, die Variable zu setzen, protokolliert, aber wird nicht zu einem Fehlschlag des Dienstes führen. Alle anderen Fehler beim Setzen von Variablen führen dazu, dass der Dienst am Ende einen Fehlschlag zurückliefert (die anderen Variablen werden weiterhin verarbeitet).

Die mit den sysctl.d-Dateien konfigurierten Einstellungen werden früh während des Systemstarts angewandt. Die Netzwerkschnittstellen-spezifischen Optionen werden auch individuell auf jede Netzschnittstelle angewandt, wenn diese im System auftaucht. (Genauer net.ipv4.conf.*, net.ipv6.conf.*, net.ipv4.neigh.* and net.ipv6.neigh.*).

Viele Sysctl-Parameter werden nur verfügbar, wenn bestimmte Kernelmodule geladen werden. Module werden normalerweise bei Bedarf geladen, z.B. wenn bestimmte Hardware eingesteckt oder das Netz aktiviert wird. Dies bedeutet, dass systemd-sysctl.service(8), das während der frühen Systemstartphase läuft, solche Parameter nicht konfigurieren wird, nachdem es ausgeführt wurde. Um solche Parameter zu setzen, wird empfohlen, eine udev(7)-Regel hinzuzufügen, um diese Parameter zu setzen, wenn diese verfügbar werden. Alternativ ist eine leicht einfachere und weniger effiziente Option, die Module zu modules-load.d(5) hinzuzufügen, wodurch diese statisch geladen werden, bevor die Sysctl-Einstellungen angewandt werden (siehe Beispiel unten).

KONFIGURATIONSVERZEICHNISSE UND RANGFOLGE

Konfigurationsdateien werden aus Verzeichnissen in /etc/, /run/, /usr/local/lib/ und /usr/lib/, in dieser Rangfolge, gelesen. Jede Konfigurationsdatei in diesen Konfigurationsverzeichnissen muss in der Art Dateiname.conf benannt sein. Dateien in /etc/ setzen Dateien mit dem gleichen Namen in /run/, /usr/local/lib/ und /usr/lib/ außer Kraft. Dateien in /run/ setzen Dateien mit dem gleichen Namen unter /usr/lib/ außer Kraft.

Pakete sollten ihre Konfigurationsdateien in /usr/lib/ (Distributionspakete) oder /usr/local/lib/ (lokale Installationen) installieren. Dateien in /etc/ sind für den lokalen Administrator reserviert, der diese Logik verwenden kann, um die durch die Lieferantenpakete bereitgestellten Konfigurationsdateien außer Kraft zu setzen. Alle Konfigurationsdateien werden in lexikographischer Reihenfolge sortiert, unabhängig davon, in welchem Verzeichnis sie sich befinden. Falls mehrere Dateien die gleiche Option festlegen, wird der Eintrag in der Datei mit dem lexikographisch letzten Namen Vorrang erhalten. Es wird empfohlen, allen Dateinamen eine zweistellige Zahl und einen Gedankenstrich voranzustellen, um die Sortierung der Dateien zu vereinfachen.

Falls der Administrator eine vom Lieferanten bereitgestellte Konfigurationsdatei deaktivieren möchte, wird empfohlen, einen Symlink im Konfigurationsverzeichnis in /etc/ mit dem gleichen Dateinamen wie die des Lieferanten auf /dev/null zu setzen. Falls die Lieferantendatei im Initrd-Image enthalten ist, muss das Image neu erstellt werden.

BEISPIELE

Beispiel 1. Den YP-Domain-Namen des Kernels setzen

/etc/sysctl.d/domain-name.conf:

    kernel.domainname=example.com

Beispiel 2. Einstellungen nur anwenden, wenn ein bestimmtes Modul geladen ist (Methode eins)

/etc/udev/rules.d/99-bridge.rules:

    ACTION=="add", SUBSYSTEM=="module", KERNEL=="br_netfilter", \
          RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/net/bridge"

/etc/sysctl.d/bridge.conf:

    net.bridge.bridge-nf-call-ip6tables = 0
    net.bridge.bridge-nf-call-iptables = 0
    net.bridge.bridge-nf-call-arptables = 0

This method applies settings when the module is loaded. Please note that, unless the br_netfilter module is loaded, bridged packets will not be filtered by Netfilter (starting with kernel 3.18), so simply not loading the module is sufficient to avoid filtering.

Beispiel 3. Einstellungen nur anwenden, wenn ein bestimmtes Modul geladen ist (Methode zwei)

/etc/modules-load.d/bridge.conf:

    br_netfilter

/etc/sysctl.d/bridge.conf:

    net.bridge.bridge-nf-call-ip6tables = 0
    net.bridge.bridge-nf-call-iptables = 0
    net.bridge.bridge-nf-call-arptables = 0

This method forces the module to be always loaded. Please note that, unless the br_netfilter module is loaded, bridged packets will not be filtered with Netfilter (starting with kernel 3.18), so simply not loading the module is sufficient to avoid filtering.

SIEHE AUCH

systemd(1), systemd-sysctl.service(8), systemd-delta(1), sysctl(8), sysctl.conf(5), modprobe(8)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.