Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Umgebungsvariablen als User via systemd setzen

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Antworten
Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 1974
Registriert: 10. Nov 2012, 11:00

Umgebungsvariablen als User via systemd setzen

Beitrag von gehrke » 11. Jan 2020, 11:25

Moin *,

ich versuche gerade, Umgebungsvariablen als User via systemd zu setzen.

https://www.freedesktop.org/software/sy ... ent.d.html

Code: Alles auswählen

# useradd t42 && su - t42

$ mkdir -p ~/.config/environment.d
$ echo "ANSWER=42" > ~/.config/environment.d/test.conf

$ /usr/lib/systemd/user-environment-generators/30-systemd-environment-d-generator
ANSWER=42

$ printenv ANSWER
$ echo $ANSWER

$ 
Das klappt so scheinbar nicht. Was habe ich vergessen/übersehen?
TNX

Getestet:
*Fedora 31 / Gnome / Wayland
*CentOS 8 / ohne DE
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
Join the fediverse: https://fediverse.party/en/fediverse/

Werbung:
Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 1974
Registriert: 10. Nov 2012, 11:00

Re: Umgebungsvariablen als User via systemd setzen

Beitrag von gehrke » 12. Jan 2020, 10:21

Bin ein paar Schritte weiter...

Das scheint grundsätzlich genau so zu funktionieren wie dokumentiert. Problematisch ist in meinem Testszenario wahrscheinlich nur gewesen, dass kein 'echtes' Login stattfindet, sondern ein 'su -' gemacht wird.

Beispielsweise bei einem Login am Gnome Desktop (Fedora 31) funktioniert das:

Code: Alles auswählen

[t42@j2 ~]$ systemctl --user show-environment | grep ANSWER
ANSWER=42

[t42@j2 ~]$ printenv ANSWER
42

[t42@j2 ~]$ echo $ANSWER
42
Bei SSH (CentOS) sieht es noch nicht ganz so gut aus:

Code: Alles auswählen

$ ssh t42@vj2
[t42@vj2 ~]$ systemctl --user show-environment | grep ANSWER
ANSWER=42

[t42@vj2 ~]$ printenv ANSWER

[t42@vj2 ~]$ echo $ANSWER

[t42@vj2 ~]$ 
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
Join the fediverse: https://fediverse.party/en/fediverse/

abgdf
Guru
Guru
Beiträge: 3236
Registriert: 13. Apr 2004, 21:15

Re: Umgebungsvariablen als User via systemd setzen

Beitrag von abgdf » 12. Jan 2020, 12:10

Code: Alles auswählen

$ /usr/lib/systemd/user-environment-generators/30-systemd-environment-d-generator
ANSWER=42
Welcher Befehl wird hier ausgeführt?
Ich hab' das Verzeichnis nicht. Hat Dein User da Schreibrechte drauf?

Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 1974
Registriert: 10. Nov 2012, 11:00

Re: Umgebungsvariablen als User via systemd setzen

Beitrag von gehrke » 12. Jan 2020, 12:40

Hinsichtlich von bash@SSH bin ich noch einen Schritt weiter, das scheint jetzt funktional:

Code: Alles auswählen

[t42@vj2 ~]$ echo "export $(systemctl --user show-environment | xargs)" >> .bashrc

Code: Alles auswählen

$ ssh t42@vj2
[t42@vj2 ~]$ printenv ANSWER
42
[t42@vj2 ~]$ echo $ANSWER
42
Wobei funktional allein ja noch nicht wirklich ausreichend sein muss und tut wohl auch nur für bash. So richtig rund scheint das noch nicht umgesetzt zu sein, eher noch eine offene Baustelle.

Hier zwei hilfreiche Links zu dem Thema:
*https://in.waw.pl/~zbyszek/blog/environmentd.html
*https://github.com/systemd/systemd/issues/7641
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
Join the fediverse: https://fediverse.party/en/fediverse/

Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 1974
Registriert: 10. Nov 2012, 11:00

Re: Umgebungsvariablen als User via systemd setzen

Beitrag von gehrke » 12. Jan 2020, 13:02

Damit tut übrigens (wenig überraschend) auch die 'su -' - Variante:

Code: Alles auswählen

# su - t42
[t42@vj2 ~]$ printenv ANSWER
42
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
Join the fediverse: https://fediverse.party/en/fediverse/

Gräfin Klara
Hacker
Hacker
Beiträge: 428
Registriert: 23. Jun 2008, 20:51

Re: Umgebungsvariablen als User via systemd setzen

Beitrag von Gräfin Klara » 12. Jan 2020, 15:01

gehrke hat geschrieben:
12. Jan 2020, 13:02
Umgebungsvariablen als User via systemd setzen
Ihr solltet generell nicht auf systemd setzen!

Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 1974
Registriert: 10. Nov 2012, 11:00

Re: Umgebungsvariablen als User via systemd setzen

Beitrag von gehrke » 12. Jan 2020, 15:22

Gräfin Klara hat geschrieben:
12. Jan 2020, 15:01
Ihr solltet generell nicht auf systemd setzen!
Bitte in diesem Thread keine Grundsatzdiskussion zu systemd. Ich möchte hier ein konkretes Problem diskutieren und idealerweise auch lösen.

Falls Du eine Grundsatzdiskussion wünscht, mache bitte dazu einen eigenen Thread auf.
TNX
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
Join the fediverse: https://fediverse.party/en/fediverse/

Antworten