Benutzer-Umgebungsvariable setzen

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
rhHeini
Beiträge: 2260
Registriert: 20.04.2006 20:44:10

Benutzer-Umgebungsvariable setzen

Beitrag von rhHeini » 07.07.2021 19:08:20

Ich will für gpg wie in der manpage beschrieben das Verzeichnnis für die Keys ändern, also statt ~/.gnupg das Verzeichnis ~/MeineSchlüssel/.gnupg verwenden.

Ist mein erster Versuch selber eine Benutzer-spezifische Umgebungsvariable zu setzen. Die Recherche hat mich ins Ubuntu-Wiki geführt. Dort wird empfohlen die Datei ~/.pam_environment anzulegen und dort den Eintrag GNUPGHOME=/home/user/MeineSchlüssel/.gnupg erzeugt. Kontrolliert hab ich das Ergebnis mit printenv, dort finde ich aber diesen Eintrag nicht.

Die ~/.profile will ich eigentlich nicht verändern, da steht ein Skript drin.

Ist der Ansatz über pam_environment bei Debian falsch?

Rolf

Edith: die Datei heißt ~/.profile
Zuletzt geändert von rhHeini am 08.07.2021 09:01:40, insgesamt 1-mal geändert.

Benutzeravatar
feltel
Webmaster
Beiträge: 10366
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Re: Benutzer-Umgebungsvariable setzen

Beitrag von feltel » 07.07.2021 20:08:51

Du kannst die Variablen ruhig in ~/.profile reinschreiben; am besten der Übersichtlichkeit halber ans Ende der Datei mit einem entsprechenden Kommentar, was gemacht werden soll. Die Verwendung von ~/.pam_environment ist mir jetzt so noch nicht untergekommen, aber bekanntlich führen ja viele Wege nach Rom.

tobo
Beiträge: 1964
Registriert: 10.12.2008 10:51:41

Re: Benutzer-Umgebungsvariable setzen

Beitrag von tobo » 07.07.2021 20:09:52

rhHeini hat geschrieben: ↑ zum Beitrag ↑
07.07.2021 19:08:20
Ich will für gpg wie in der manpage beschrieben das Verzeichnnis für die Keys ändern, also statt ~/.gnupg das Verzeichnis ~/MeineSchlüssel/.gnupg verwenden.
Dazu musst du einfach GNUPGHOME zuordnen und dann exportieren:

Code: Alles auswählen

export GNUPGHOME="${HOME}/MeineSchlüssel/.gnupg"
Die ~/.profiles will ich eigentlich nicht verändern, da steht ein Skript drin.
Du hast da ein Skript reinkopiert bzw. reingeschrieben? Kann man machen ist aber eher unüblich. Man würde eher ein (externes) Skript in dieser Datei aufrufen. Wie auch immer, ~/.profile wäre der optimale und logische Ort für die Umgebungsvariable und nicht etwa ~/.bashrc oder Konsorten! Man muss halt nur sicherstellen, dass ~/.profile aufgerufen wird (Login Shell). Zum Testen der Konfiguration einfach ein "source ~/.profile" in der aktuellen Shell absetzen. Für eine systemweite Aktualisierung sollte man sich dann neu anmelden.

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Benutzer-Umgebungsvariable setzen

Beitrag von JTH » 07.07.2021 20:53:30

rhHeini hat geschrieben: ↑ zum Beitrag ↑
07.07.2021 19:08:20
Ist der Ansatz über pam_environment bei Debian falsch?
Nicht falsch, aber zumindest ungewöhnlich. Er würde auch, nach kurzem Überfliegen der Dateien in /etc/pam.d, in Debian nicht ohne zusätzliche Konfiguration funktionieren. (Dort wird user_readenv nicht für alle erwarteten Anmeldewege auf 1 gesetzt. ~/.pam_environment würde damit in den meisten Fällen wirkungslos bleiben.)
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
smutbert
Moderator
Beiträge: 8313
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Benutzer-Umgebungsvariable setzen

Beitrag von smutbert » 08.07.2021 00:39:42

Unter Gnome, zumindest unter wayland, wird ~/.profile nicht ausgeführt, vermutlich wird die Sitzung einfach nicht wie früher über eine Shell bzw. ein Shell-Skript gestartet.
Funktionieren sollten dagegen
  • ~/.config/environment.d/*.conf
  • ~/.gnomerc

Ginge es nur darum die Umgebungsvariable im bzw. für das Terminal oder viel mehr die Shell darin zu setzen kann man auch unter Gnome noch die ~/.bashrc oder, wenn man in den Einstellungen des Terminal festlegt, dass die Shell als Login-Shell gestartet werden soll, die ~/.profile nutzen.

rhHeini
Beiträge: 2260
Registriert: 20.04.2006 20:44:10

Re: Benutzer-Umgebungsvariable setzen

Beitrag von rhHeini » 08.07.2021 12:11:57

Vielen Dank für die Hinweise. Ich hab jetzt die 5 Optionen nacheinander ausprobiert und habe versucht das Ergebnis mit printenv in der Userkonsole zu verifizieren. Entweder bin ich blind, das printenv tut nicht das was ich erwarte, oder keine der 5 setzen eine Environmentvariable bei mir. Ich hab in 4 Dateien den Text

Code: Alles auswählen

GNUPGHOME=/home/rolf/MeineSchlüssel/.gnupg
eingefügt und entweder rebootet oder mich aus und wieder angemeldet. Die 4 Dateien sind:
  • ~/.pam_environment
  • ~/.profile
  • ~/.config/environment.d/profile.conf
  • ~/.gnomerc
Als fünftes hab ich den Export probiert, auch da krieg ich bei printenv nichts zusätzlich angezeigt.

Was kann da daneben gehen? Ich hab hier Testing mit Cinnnamon und Lightdm. Müssen die Dateien ausführbar sein? In der ~/.profile steht z.B. per Default ein Skript, die Datei hat aber 644 als Rechte, nicht ausführbar.

Rolf


PS: mir ist dabei noch aufgefallen das ich in FF ein Anzeigeproblem habe. Die Tilde wird als Bindestrich dargestellt, es sein denn ich befinde mich im Editiermodus des Forums. Komisch.

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Benutzer-Umgebungsvariable setzen

Beitrag von JTH » 08.07.2021 12:36:08

Du musst die Variable exportieren, damit sie an neu aufgerufene Anwendungen vererbt wird:

Code: Alles auswählen

export GNUPGHOME=/home/rolf/MeineSchlüssel/.gnupg
oder separat

Code: Alles auswählen

GNUPGHOME=/home/rolf/MeineSchlüssel/.gnupg
export GNUPGHOME

Ohne den Export ist sie nur in der Shell selbst als Nicht-Umgebungsvariable verfügbar:

Code: Alles auswählen

echo $GNUPGHOME

Nachtrag: Das export notwendig ist, gilt zumindest für die ~/.profile.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
smutbert
Moderator
Beiträge: 8313
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Benutzer-Umgebungsvariable setzen

Beitrag von smutbert » 08.07.2021 12:46:33

Ich habe etwas Veraltetes gepostet: die ~/.gnomerc wird (seit wayland?) ignoriert.

Aber ~/.config/environment.d/profile.conf sollte funktionieren. In letzterer Datei gehören nur Zeilen die den Variablen Werte zuweisen, wie

Code: Alles auswählen

GNUPGHOME=/home/rolf/MeineSchlüssel/.gnupg
ganz ohne Shebang, export oder sonstige Shell-Befehle und sie soll auch nicht ausführbar sein.

rhHeini
Beiträge: 2260
Registriert: 20.04.2006 20:44:10

Re: Benutzer-Umgebungsvariable setzen

Beitrag von rhHeini » 08.07.2021 14:11:54

Bin etwas weiter. Als ich nach dem export die lange Liste nach dem printenv noch mal geflöht habe, hab ich mittendrin die Variable gefunden. Das funzt für eine Terminalsession. Das ist schon mal was.

Ich möchte die Variable aber permanent setzen, weil ich die Prozedur beim nächsten Verwenden von gpg garantiert vergessen habe. Wie es aussieht wird die ~/.config/environment.d/profile.conf nicht gelesen. Muss ich da noch was in /etc oder so einstellen? Habs schon mehrfach auf Tippfehler kontrolliert,

Rolf

rhHeini
Beiträge: 2260
Registriert: 20.04.2006 20:44:10

Re: Benutzer-Umgebungsvariable setzen

Beitrag von rhHeini » 08.07.2021 18:49:23

Es läuft. Ich hab mich an diesem Artikel langgehangelt: https://wiki.debian.org/EnvironmentVariables und dann noch den Punkt/Kommentar 131.9 aus https://unix.stackexchange.com/question ... t-session# beachtet, jetzt gehts.

Langer Rede kurzer Sinn: in der ~/.profile steht jetzt drin:

Code: Alles auswählen

GNUPGHOME=/home/rolf/MeineSchlüssel/.gnupg; export GNUPGHOME
Das bringts.

Rolf

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Benutzer-Umgebungsvariable setzen

Beitrag von JTH » 08.07.2021 18:59:48

rhHeini hat geschrieben: ↑ zum Beitrag ↑
08.07.2021 18:49:23
Langer Rede kurzer Sinn: in der ~/.profile steht jetzt drin:

Code: Alles auswählen

GNUPGHOME=/home/rolf/MeineSchlüssel/.gnupg; export GNUPGHOME
Das bringts.
Das ist doch das, was ich dir oben schon angeraten hatte ;)
Manchmal bekannt als Just (another) Terminal Hacker.

tobo
Beiträge: 1964
Registriert: 10.12.2008 10:51:41

Re: Benutzer-Umgebungsvariable setzen

Beitrag von tobo » 08.07.2021 23:47:20

rhHeini hat geschrieben: ↑ zum Beitrag ↑
08.07.2021 18:49:23
und dann noch den Punkt/Kommentar 131.9 aus https://unix.stackexchange.com/question ... t-session# beachtet, jetzt gehts.
Da das keine Bash-Only-Syntax ist, ist der Punkt eigentlich komplett überflüssig! Oder kannst du etwa eine bourne-kompatible Shell benennen, die das nicht kann - welche ist denn bei dir installiert?

rhHeini
Beiträge: 2260
Registriert: 20.04.2006 20:44:10

Re: Benutzer-Umgebungsvariable setzen

Beitrag von rhHeini » 10.07.2021 08:47:48

Die Hinweise auf das exportieren hab ich überlesen. Ich hab anfangs angenommen das die Definition der Variablen reichen muss. Wieder was gelernt.

Installiert ist bei mir nichts besonderes, eine ganz normale bash. So wie ich es gestaltet habe geht es, ich hab keinen Nerv noch weiter rumzubasteln um den Optimalzustand zu finden.

Rolf

Antworten