Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
20.06.2018, 05:45:10

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 20324
  • Letzte: daydream
Statistiken
  • Beiträge insgesamt: 534416
  • Themen insgesamt: 42814
  • Heute online: 329
  • Am meisten online: 680
  • (27.03.2018, 20:17:41)
Benutzer Online
Mitglieder: 4
Gäste: 224
Gesamt: 228

Autor Thema:  Programm als anderer User starten  (Gelesen 926 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Programm als anderer User starten
« am: 13.06.2018, 15:07:30 »
Teste gerade das Neue LM 19 Beta. Thunderbird habe ich bisher mit dem Befehl "gksu %u USERNAME thunderbird" gestartet. Das hatte den Vorteil, dass das E-Mail Programm eine eigene Password-Abfrage hatte.
In LM 19 wurde jetzt gksu durch pkexec ersetzt. Leider klappt das jetzt nicht mehr so problemlos. Als root bekomme ich es noch hin, aber wie man eine GUI als anderer Benutzer startet entzieht sich meiner Kenntnis.

Habe mir schon die Augen ausgegoogelt, aber nix brauchbares gefunden.

Weiß jemand Abhilfe?


LM 19 Beta
Cinnamon 3.8.4

Re: Programm als anderer User starten
« Antwort #1 am: 13.06.2018, 15:34:36 »
Zitat
Thunderbird habe ich bisher mit dem Befehl "gksu %u USERNAME thunderbird" gestartet
Sehe ich nicht, wozu das gut sein soll ...

Re: Programm als anderer User starten
« Antwort #2 am: 13.06.2018, 15:49:28 »
Hi :)
du willst doch nicht etwa erzählen das du tb als root startest?   :-\ :-\ :o
sicherheitstechnischer super-gau...  ich glaub es nicht...  wie kann man nur auf solche ideen kommen...

läuft dein browser auch als root?


edit alles gut durch dein falsches % verguckt...  -u geht ja auch bei gksu...
« Letzte Änderung: 13.06.2018, 15:58:11 von ehtron »

Re: Programm als anderer User starten
« Antwort #3 am: 13.06.2018, 16:17:34 »
Hi, ich habe hier ein Bashscript im LinuxMagazin (Leserkommentare zu einem Artikel) gesehen, durch welches man gksu zurückholen können soll. Ich selbst habe das nicht getestet (habe überall KDE am laufen und keine Notwendigkeit dafür).
Eventuell kann sich das mal jemand ansehen, der sich dazu befähigt fühlt und hier mitteilen, ob das was taugt.

#!/bin/bash
 #
 # gksu replacement script
 #
 # save script file as /usr/local/bin/gksu
 # mark executable: chmod +x /usr/local/bin/gksu
 # set readonly for all, writable for root and group root
 # use gksu command as usual
# fetch command to execute
 execcmd=$@
# fetch current user name
 curuser=$(whoami)
# message to show
 msg=“sudo $execcmd\n\nEnter password for $curuser:“
# request user password
 if PASS=$(zenity –entry –hide-text –text „$msg“ –title „GKSU“ 2> /dev/null); then
 if ! [ -z $PASS ]; then
 # check if password is valid
 echo „$PASS“ | sudo -S -i -k pwd > /dev/null 2> /dev/null
 if ! [ $? -eq 0 ]; then
 # password is not valid: show warning
 zenity –warning –no-wrap –text „The password supplied was invalid!“ –title „GKSU“ 2> /dev/null
 else
 # password is valid: execute command
 echo „$PASS“ | sudo -S -i -k $execcmd 2> /dev/null
 # eval exit code of command
 if ! [ $? -eq 0 ]; then
 zenity –warning –no-wrap –text „The command supplied could not be executed!“ –title „GKSU“ 2> /dev/null
 fi
 fi
 else
 # empty password: show warning
 zenity –warning –no-wrap –text „An empty password was supplied!“ –title „GKSU“ 2> /dev/null
 fi
 fi
# clean exit
 exit 0

Re: Programm als anderer User starten
« Antwort #4 am: 13.06.2018, 16:29:07 »
Hi, ich habe hier ein Bashscript im LinuxMagazin (Leserkommentare zu einem Artikel) gesehen, durch welches man gksu zurückholen können soll. Ich selbst habe das nicht getestet (habe überall KDE am laufen und keine Notwendigkeit dafür).
Eventuell kann sich das mal jemand ansehen, der sich dazu befähigt fühlt und hier mitteilen, ob das was taugt.

#!/bin/bash
 #
 # gksu replacement script
 #
 # save script file as /usr/local/bin/gksu
 # mark executable: chmod +x /usr/local/bin/gksu
 # set readonly for all, writable for root and group root
 # use gksu command as usual
# fetch command to execute
 execcmd=$@
# fetch current user name
 curuser=$(whoami)
# message to show
 msg=“sudo $execcmd\n\nEnter password for $curuser:“
# request user password
 if PASS=$(zenity –entry –hide-text –text „$msg“ –title „GKSU“ 2> /dev/null); then
 if ! [ -z $PASS ]; then
 # check if password is valid
 echo „$PASS“ | sudo -S -i -k pwd > /dev/null 2> /dev/null
 if ! [ $? -eq 0 ]; then
 # password is not valid: show warning
 zenity –warning –no-wrap –text „The password supplied was invalid!“ –title „GKSU“ 2> /dev/null
 else
 # password is valid: execute command
 echo „$PASS“ | sudo -S -i -k $execcmd 2> /dev/null
 # eval exit code of command
 if ! [ $? -eq 0 ]; then
 zenity –warning –no-wrap –text „The command supplied could not be executed!“ –title „GKSU“ 2> /dev/null
 fi
 fi
 else
 # empty password: show warning
 zenity –warning –no-wrap –text „An empty password was supplied!“ –title „GKSU“ 2> /dev/null
 fi
 fi
# clean exit
 exit 0



Hallo nativeworld,

danke für Deinen Vorschlag, aber gksu wurde offensichtlich aus gutem Grund gecancelt. Mit dem Ersatz pkexec soll das auch gehen, dass man als anderer User ein Programm aufruft. Einzig mir fehlt das WIE....

Re: Programm als anderer User starten
« Antwort #5 am: 13.06.2018, 16:38:47 »
Du musst im Ordner /usr/share/polkit-1/actions eine policy für thunderbird erstellen aber frag mich mal wie das geht. Ich steig da selbst noch nicht durch.

Re: Programm als anderer User starten
« Antwort #6 am: 13.06.2018, 16:56:09 »
Hi :)
nur mal auf die schnelle angeguckt....
so sollte es gehen... mit tb in der 19er virtuellen getestet

pkexec --user $USER thunderbird --display=:0

toffifee

  • Global Moderator
  • *****
Re: Programm als anderer User starten
« Antwort #7 am: 13.06.2018, 17:11:42 »
Off-Topic:
[Mod: OT gelöscht, ich hoffe, es kehrt jetzt ein anderer Ton ein...
@Kutscher58: erfahrene Mitglieder als Trolle zu verunglimpfen, ist kein guter Einstieg hier! ::)]

Re: Programm als anderer User starten
« Antwort #8 am: 13.06.2018, 17:17:08 »
Ja, @ehtron. So startet der thunderbird. Geht also auch ohne policy, cool.

Re: Programm als anderer User starten
« Antwort #9 am: 13.06.2018, 17:37:38 »
pkexec --user $USER thunderbird --display=:0
Wenn ich einfach nur "thunderbird" eingäbe, würde auch das Profil des aktuell angemeldeten Nutzers aufgerufen ;)

Um Thunderbird im Kontext eines anderen Users aufzurufen, ist vorweg auch noch ein "xhost +" nötig:
xhost +;pkexec --user benutzername thunderbird --display=:0


Re: Programm als anderer User starten
« Antwort #10 am: 13.06.2018, 18:37:39 »
pkexec --user $USER thunderbird --display=:0
Wenn ich einfach nur "thunderbird" eingäbe, würde auch das Profil des aktuell angemeldeten Nutzers aufgerufen ;)

Um Thunderbird im Kontext eines anderen Users aufzurufen, ist vorweg auch noch ein "xhost +" nötig:
xhost +;pkexec --user benutzername thunderbird --display=:0

Ausprobiert und bekomme folgende Meldung:

Zitat
ln@wasserturm:/DATA/ln$ pkexec --user $ln2 thunderbird --display=:0
Cannot run program --display=:0: No such file or directory
ln@wasserturm:/DATA/ln$ xhost +;pkexec --user ln2 thunderbird
access control disabled, clients can connect from any host
[calBackendLoader] Using Thunderbird's builtin libical backend

(thunderbird:29506): dconf-CRITICAL **: 18:25:43.929: unable to create file '/home/ln2/.cache/dconf/user': Keine Berechtigung.  dconf will not work properly.

Das Programm startet aber. Zwar im richtigen User, allerdings immer doppelt...

Außerdem fragt er das root-PW ab und nicht das vom User.


toffifee

  • Global Moderator
  • *****
Re: Programm als anderer User starten
« Antwort #11 am: 13.06.2018, 18:42:22 »
Zitat
ln@wasserturm:/DATA/ln$ pkexec --user $ln2 thunderbird --display=:0
$USER ist eine Systemvariable (liefert den aktuellen user) und darf daher nicht durch was anderes ersetzt werden.

Re: Programm als anderer User starten
« Antwort #12 am: 13.06.2018, 19:06:02 »
Zitat
ln@wasserturm:/DATA/ln$ pkexec --user $ln2 thunderbird --display=:0
$USER ist eine Systemvariable (liefert den aktuellen user) und darf daher nicht durch was anderes ersetzt werden.

Zitat
ln@wasserturm:/DATA/ln$ xhost +;pkexec --user ln2 thunderbird --display=:0
access control disabled, clients can connect from any host
[calBackendLoader] Using Thunderbird's builtin libical backend

(thunderbird:30354): dconf-CRITICAL **: 18:57:54.331: unable to create file '/home/ln2/.cache/dconf/user': Keine Berechtigung.  dconf will not work properly.


Ich hab' jetzt schon fast alle Möglichkeiten durchprobiert, aber immer gibt's Fehlermeldungen. Irgendetwas versteh ich nicht bzw. falsch.
Könntest Du mir mal die komplette Befehlszeile geben für Copy&Paste?   LN = aktueller user      LN2 = der user auf den das Programm gestartet werden soll.

Re: Programm als anderer User starten
« Antwort #13 am: 13.06.2018, 19:09:38 »
ln@wasserturm:/DATA/ln$ xhost +;pkexec --user ln2 thunderbird
Das stimmt mMn, bis auf das fehlende "--display=:0".
Muss das Arbeitsverzeichnis "/DATA/ln" sein?
Normalerweise sollte das PW von Benutzer "ln" abgefragt werden, nicht von "root" und auch nicht von "ln2".
« Letzte Änderung: 13.06.2018, 19:15:36 von aexe »

Re: Programm als anderer User starten
« Antwort #14 am: 13.06.2018, 19:39:39 »
ln@wasserturm:/DATA/ln$ xhost +;pkexec --user ln2 thunderbird
Das stimmt mMn, bis auf das fehlende "--display=:0".
Muss das Arbeitsverzeichnis "/DATA/ln" sein?
Normalerweise sollte das PW von Benutzer "ln" abgefragt werden, nicht von "root" und auch nicht von "ln2".


Das Arbeitsverzeichnis muss nicht sein, stört aber auch nicht. Das PW von root und ln sind in diesem Fall identisch. Da die Mails von ln2 gelesen werden können, müßte eigentlich auch das PW von ln2 abgefragt werden. Macht einfach mehr Sinn...

Hier nochmal ein Versuch, diesmal mit Displayzusatz:

Zitat
ln@wasserturm:/DATA/ln$ cd ..
ln@wasserturm:/DATA$ cd ..
ln@wasserturm:/$ xhost +;pkexec --user ln2 thunderbird --display=:0
access control disabled, clients can connect from any host
[calBackendLoader] Using Thunderbird's builtin libical backend

(thunderbird:31759): dconf-CRITICAL **: 19:29:19.304: unable to create file '/home/ln2/.cache/dconf/user': Keine Berechtigung.  dconf will not work properly.

(thunderbird:31759): dconf-CRITICAL **: 19:29:19.305: unable to create file '/home/ln2/.cache/dconf/user': Keine Berechtigung.  dconf will not work properly.

(thunderbird:31759): dconf-CRITICAL **: 19:29:19.305: unable to create file '/home/ln2/.cache/dconf/user': Keine Berechtigung.  dconf will not work properly.

(thunderbird:31759): dconf-CR