Warum unterscheidet sich xdg-open text_file von sudo -u me xdg-open text_file?

Warum unterscheidet sich xdg-open text_file von sudo -u me xdg-open text_file?

Wenn ich den folgenden Befehl ausführe, wird die Textdatei in meinem bevorzugten Editor (Kate) geöffnet.

$ xdg-open text_file

Wenn ich jedoch Folgendes versuche, wo sparhawkmein Benutzername ist, erhalte ich mehrere Warnungen und stattdessen wird der Jbidwatcher geöffnet.

$ sudo -u sparhawk xdg-open text_file

Was ist der Unterschied?


Hintergrund

Ich habe ein von udev ausgelöstes Skript, das daher als Root ausgeführt wird. Ich versuche, eine Protokolldatei mit dem Standardeditor des Benutzers zu öffnen.

Hier sind weitere Ausgaben, die hilfreich sein könnten.

$ xdg-mime query default text/plain
kate.desktop
$ sudo -u sparhawk xdg-mime query default text/plain
jbidwatcher.desktop
$ sudo -iu sparhawk xdg-mime query default text/plain
jbidwatcher.desktop
$ sudo -Eu sparhawk xdg-mime query default text/plain
kate.desktop
$ sudo -iEu sparhawk xdg-mime query default text/plain
jbidwatcher.desktop

Ich habe auch versucht, nach zu testen sudo -i. In allen Fällen war die Ausgabe jbidwatcher.desktop.

Antwort1

sudoverändert die Umgebung.

Versuchen

printenvund sudo -u sparhawk printenvden Unterschied zu sehen.

verwandte Informationen