SYSCTL.D(5) sysctl.d SYSCTL.D(5) BEZEICHNUNG sysctl.d - Kernel-Parameter beim Systemstart konfigurieren UBERSICHT /etc/sysctl.d/*.conf /run/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf Schlussel.Name.unter.proc.sys = ein Wert Schlussel/Name/unter/proc/sys = ein Wert Schlussel/mittel.Teil.mit.Punkten/foo = 123 Schlussel.mittel/Teil/mit/Punkten.foo = 123 -Schlussel.der.nicht.fehlschlagen.wird = Wert Schlussel.Muster.*.mit.Glob = irgendwas -Schlussel.Muster.ausgeschlossen.mit.Glob Schlussel.Muster.ausserkraftgesetzt.mit.Glob = angepasst 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 Zeilenumbruchen 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 Schragstrich ist, werden die restlichen Schragstriche und Punkte unverandert gelassen. Falls der erste Trenner ein Punkt ist, werden Punkte und Schragstriche ausgetauscht. >>kernel.domainname=foo<< und >>kernel/domainname=foo<< sind aquivalent und fuhren 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. Zum Schreiben des gleichen Wertes in alle passenden Schlussel kann ein glob(7)-Muster benutzt werden. Schlussel, fur die ein explizites Muster existiert, werden von samtlichen Glob-Vergleichen ausgeschlossen. Zusatzlich kann das Setzen eines Schlussels explizit ausgeschlossen werden, indem der Schlusselname mit vorangestelltem >>-<< angegeben wird und ihm kein >>=<< folgt, siehe UBERSICHT. Samtliche Berechtigungsfehler und Versuche, Variablen zu schreiben, die auf dem lokalen System nicht vorhanden sind, werden auf der Debug-Stufe protokolliert, fuhren aber nicht zum Fehlschlag des Dienstes. Andere Fehlertypen beim Setzen von Variablen werden mit hoherer Prioritat protokolliert und fuhren dazu, dass der Dienst am Ende einen Fehlschlag zuruckliefert (nachdem andere Variablen verarbeitet wurden). Wird einer Variablenzuweisung ein einzelnes >>-<<-Zeichen vorangestellt, so werden abweichend davon Fehler aus beliebigen Grunden, die Variable zu setzen, auf der Stufe >>debug<< protokolliert und dies wird nicht zu einem Fehlschlag des Dienstes fuhren. Die mit den sysctl.d-Dateien konfigurierten Einstellungen werden fruh wahrend 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 verfugbar, 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 wahrend der fruhen Systemstartphase lauft, solche Parameter nicht konfigurieren wird, nachdem es ausgefuhrt wurde. Um solche Parameter zu setzen, wird empfohlen, eine udev(7)-Regel hinzuzufugen, um diese Parameter zu setzen, wenn diese verfugbar werden. Alternativ ist eine leicht einfachere und weniger effiziente Option, die Module zu modules-load.d(5) hinzuzufugen, 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, wie im Abschnitt UBERSICHT oben aufgefuhrt. Dateien mussen die Endung >>.conf<< haben. Dateien in /etc/ setzen Dateien mit dem gleichen Namen in /run/, /usr/local/lib/ und /usr/lib/ ausser Kraft. Dateien in /run/ setzen Dateien mit dem gleichen Namen unter /usr/lib/ ausser Kraft. Alle Konfigurationsdateien werden in lexikographischer Reihenfolge sortiert, unabhangig davon, in welchem Verzeichnis sie sich befinden. Falls mehrere Dateien die gleiche Option angeben, wird der Eintrag in der Datei mit dem lexikographisch letzten Namen Vorrang erhalten. Daher kann die Konfiguration in einer bestimmten Datei entweder komplett ersetzt werden (indem eine Datei mit dem gleichen Namen in einem Verzeichnis mit hoherer Prioritat abgelegt wird) oder einzelne Einstellungen konnen geandert werden (indem zusatzliche Einstellungen in einer Datei mit einem anderen Namen, der spater angeordnet ist, angegeben werden). Pakete sollten ihre Konfigurationsdateien in /usr/lib/ (Distributionspakete) oder /usr/local/lib/ (lokale Installationen) installieren. Dateien in /etc/ sind fur den lokalen Administrator reserviert, der diese Logik verwenden kann, um die durch die Lieferantenpakete bereitgestellten Konfigurationsdateien ausser Kraft zu setzen. Es wird empfohlen, allen Dateinamen eine zweistellige Zahl und einen Bindestrich voranzustellen, um die Sortierung der Dateien zu vereinfachen. Falls der Administrator eine vom Lieferanten bereitgestellte Konfigurationsdatei deaktivieren mochte, 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 Diese Methode wendet die Einstellungen an, wenn das Modul geladen wird. Bitte beachten Sie, dass uber Bridges weitergeleitete Pakete durch Netfilter nicht gefiltert werden, ausser das Modul >>br_netfilter<< ist geladen (seit Kernel 3.18), daher reicht es aus, das Modul einfach nicht zu laden, um das Filtern zu vermeiden. 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 Diese Methode erzwingt, dass das Modul immer geladen wird. Bitte beachten Sie, dass uber Bridges weitergeleitete Pakete durch Netfilter nicht gefiltert werden, ausser das Modul >>br_netfilter<< ist geladen (seit Kernel 3.18), daher reicht es aus, das Modul einfach nicht zu laden, um das Filtern zu vermeiden. Beispiel 4. Setzen von Netzwerk-Routing-Eigenschaften fur alle Schnittstellen /etc/sysctl.d/20-rp_filter.conf: net.ipv4.conf.default.rp_filter = 2 net.ipv4.conf.*.rp_filter = 2 -net.ipv4.conf.all.rp_filter net.ipv4.conf.hub0.rp_filter = 1 Der Schlussel rp_filter wird fur alle Schnittstellen ausser >>hub0<< auf >>2<< gesetzt. Wir setzen zuerst net.ipv4.conf.default.rp_filter, damit alle spater hinzugefugten Schnittstellen diesen Wert erhalten (dies deckt auch alle wahrend des Betriebs erkannten Schnittstellen ab). Der Glob passt auf alle fruher erkannten Schnittstellen. Der Glob passt auch auf net.ipv4.conf.all.rp_filter, der uberhaupt nicht gesetzt werden soll und daher explizit ausgeschlossen wird. Und >>hub0<< ist von dem Glob ausgeschlossen, da er eine explizite Einstellung hat. SIEHE AUCH systemd(1), systemd-sysctl.service(8), systemd-delta(1), sysctl(8), sysctl.conf(5), modprobe(8) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . systemd 255 SYSCTL.D(5)