ENVIRONMENT.D(5) environment.d ENVIRONMENT.D(5) BEZEICHNUNG environment.d - Definition einer Benutzerdiensteumgebung UBERSICHT ~/.config/environment.d/*.conf /etc/environment.d/*.conf /run/environment.d/*.conf /usr/lib/environment.d/*.conf /etc/environment BESCHREIBUNG Konfigurationsdateien in den environment.d-Verzeichnissen enthalten Listen von Umgebungsvariablenzuweisungen, die an Dienste, die durch die Systembenutzerinstanz gestartet werden, weitergegeben werden. systemd-environment-d-generator(8) wertet sie aus und aktualisiert die von der Systemd-Benutzerinstanz exportierte Umgebung. Lesen Sie die nachfolgende Diskussion daruber, welche Prozesse diese Variablen erben. Es wird empfohlen, alle Namen mit Ziffern zu beginnen, um die Sortierung zu vereinfachen. Zur Ruckwartskompatibilitat wird ein Symlink auf /etc/environment installiert, so dass diese Datei auch ausgewertet wird. 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. KONFIGURATIONSFORMAT Die Konfigurationsdateien enthalten eine Liste von >>SCHLUSSEL=Wert<<-Umgebungsvariablenzuweisungen, getrennt durch Zeilenumbruche. Die rechte Seite dieser Zuweisungen kann vorher definierte Umgebungsvariablen referenzieren, indem das Format >>${ANDERER_SCHLUSSEL}<< und >>$ANDERER_SCHLUSSEL<< verwandt wird. Es ist auch moglich, >>${FOO:-VORGABEWERT}<< zu verwenden, um auf die gleiche Art wie >>${FOO}<< zu expandieren, ausser die Expandierung ware 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 hatte. Weiter Elemente der Shell-Syntax werden nicht unterstutzt. Jeder SCHLUSSEL muss ein gultiger Variablenname sein. Leere Zeilen und Zeilen, die mit dem Kommentarzeichen >>#<< beginnen, werden ignoriert. Beispiel 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/} GELTUNGSBEREICH Die durch die Benutzerdiensteverwalterinstanz (Instanz systemd --user, gestartet in dem Systemdienst user@UID.service) exportierten Umgebungsvariablen werden an alle Dienste, die durch diesen Verwalter gestartet werden, weitergegeben. Dies betrifft insbesondere Dienste, die in Shells ausgefuhrt werden. Beispielsweise lauft in der GNOME-Umgebung der graphische Terminal-Emulator als Benutzer-Unit gnome-terminal-server.service, die wiederum die Benutzer-Shell ausfuhrt, so dass die Shell die durch den Benutzerverwalter exportierten Umgebungsvariablen erben wird. Fur andere Instanzen der Shell, die nicht vom Benutzerdiensteverwalter 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. Beachten Sie, dass diese Dateien nicht den Umgebungsblock des Diensteverwalters selbst betreffen, sondern ausschliesslich die Umgebungsblocke, die an die Dienste, die von ihm verwaltet werden, ubergeben werden. Auf diese Weise gesetzt Umgebungsvariablen konnen daher nicht das Verhalten des Diensteverwalters beeinflussen. Um Anderungen am Umgebungsblock des Diensteverwalters vorzunehmen, muss die Umgebung verandert werden, bevor der Benutzerdiensteverwalter aufgerufen wird, beispielsweise vom Systemdiensteverwalter oder mittels eines PAM-Moduls. Insbesondere fur 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 uber analoge Mechanismen zur Definition der Umgebung verfugen. Beachten Sie, dass einige Verwalter die Systemd-Benutzer-Instanz bezuglich der exportierten Umgebung mittels systemctl show-environment oder dem zugrundeliegenden D-Bus-Aufruf abfragen und diese Konfiguration in Programme einleiten, die sie starten. SIEHE AUCH systemd(1), systemd-environment-d-generator(8), systemd.environment-generator(7) 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 ENVIRONMENT.D(5)