environment.d - Definition einer Benutzerdiensteumgebung
~/.config/environment.d/*.conf
/etc/environment.d/*.conf
/run/environment.d/*.conf
/usr/lib/environment.d/*.conf
/etc/environment
Konfigurationsdateien in den environment.d-Verzeichnissen enthalten Listen von
Umgebungsvariablenzuweisungen für Dienste, die durch die
Systembenutzerinstanz gestartet werden.
systemd-environment-d-generator(8) wertet sie aus und aktualisiert die
von der Systemd-Benutzerinstanz exportierte Umgebung. Lesen Sie die
nachfolgende Diskussion darüber, welche Prozesse diese Variablen erben.
Es wird empfohlen, alle Namen mit Ziffern zu beginnen, um die Sortierung zu
vereinfachen.
Zur Rückwärtskompatibilität wird ein Symlink auf
/etc/environment installiert, so dass diese Datei auch ausgewertet wird.
Konfigurationsdateien werden aus Verzeichnissen in /etc/, /run/, /usr/local/lib/
und /lib/, in dieser Rangfolge, gelesen, wie im Abschnitt ÜBERSICHT
oben aufgeführt. Dateien müssen die Endung ».conf«
haben. Dateien in /etc/ setzen Dateien mit dem gleichen Namen in /run/,
/usr/local/lib/ und /lib/ außer Kraft. Dateien in /run/ setzen Dateien
mit dem gleichen Namen unter /usr/lib/ außer Kraft.
Alle Konfigurationsdateien werden in lexikographischer Reihenfolge sortiert,
unabhängig 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
höherer Priorität abgelegt wird) oder einzelne Einstellungen
können geändert werden (indem zusätzliche Einstellungen
in einer Datei mit einem anderen Namen, der später angeordnet ist,
angegeben werden).
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. 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 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.
Die Konfigurationsdateien enthalten eine Liste von »
SCHLÜSSEL=
Wert«-Umgebungsvariablenzuweisungen,
getrennt durch Zeilenumbrüche. Die rechte Seite dieser Zuweisungen kann
vorher definierte Umgebungsvariablen referenzieren, indem das Format
»${ANDERER_SCHLÜSSEL}« und
»$ANDERER_SCHLÜSSEL« verwandt wird. Es ist auch
möglich, »${
FOO:-
VORGABEWERT}« zu
verwenden, um auf die gleiche Art wie »${
FOO}« zu
expandieren, außer die Expandierung wäre leer, in welchem Fall
sie auf
VORGABEWERT expandiert wird; und »${
FOO:+
ALTERNATIVWERT}« zu verwenden, um auf
ALTERNATIVWERT zu expandieren, falls ${
FOO}« sich auf
einen nicht leeren Wert expandiert hätte. Weiter Elemente der
Shell-Syntax werden nicht unterstützt.
Jeder
SCHLÜSSEL muss ein gültiger Variablenname sein. Leere
Zeilen und Zeilen, die mit dem Kommentarzeichen »#« beginnen,
werden ignoriert.
Beispiel 1. Einrichten einer Umgebung, um Zugriff auf ein unter
/opt/foo installiertes Programm zu geben
/etc/environment.d/60-foo.conf:
FOO_DEBUG=force-software-gl,log-verbose
PATH=/opt/foo/bin:$PATH
LD_LIBRARY_PATH=/opt/foo/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
XDG_DATA_DIRS=/opt/foo/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}
Die durch die Benutzerverwalterinstanz (Instanz
systemd --user, gestartet
in dem Systemdienst user@
UID.service) exportierten Umgebungsvariablen
gelten für alle Dienste, die durch diesen Verwalter gestartet werden.
Dies betrifft insbesondere Dienste, die in Shells ausgeführt werden.
Beispielsweise läuft in der GNOME-Umgebung der graphische
Terminal-Emulator als Benutzer-Unit gnome-terminal-server.service, die
wiederum die Benutzer-Shell ausführt, so dass die Shell die durch den
Benutzerverwalter exportierten Umgebungsvariablen erben wird. Für
andere Instanzen der Shell, die nicht vom Benutzerverwalter gestartet werden,
wird die geerbte Umgebung durch das Programm definiert, das sie startete.
Tipp: Im Allgemeinen enthalten
systemd.service(5)-Units die durch
Systemd gestarteten Programme und
systemd.scope(5)-Units enthalten
Programme, die von etwas anderem gestartet wurden.
Insbesondere für SSH-Anmeldungen baut der Dienst
sshd(8) eine
Umgebung auf, die eine Kombination aus Variablen sind, die von dem fernen
System weitergeleitet und solchen, die durch
sshd definiert wurden;
siehe die Diskussion in
ssh(1). Eine graphische Display-Sitzung wird
über analoge Mechanismen zur Definition der Umgebung verfügen.
Beachten Sie, dass einige Verwalter die Systemd-Benutzer-Instanz
bezüglich der exportierten Umgebung mittels
systemctl
show-environment oder dem zugrundeliegenden D-Bus-Aufruf abfragen und
diese Konfiguration in Programme einleiten, die sie starten.
systemd(1),
systemd-environment-d-generator(8),
systemd.environment-generator(7)
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann
<
[email protected]> 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 die
Mailingliste
der Übersetzer