PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wine per 'sudo -H -u <anderer user>' will nicht



DerAufgeklUser
25.09.07, 08:22
Moinsen!

Ich habe einen Benutzer "nonet" angelegt, dem ich per iptables den Zugang zum Internet verwehre. Nun will ich von meinem Account aus als dieser Benutzer per sudo -H -u nonet wine benutzen.
Leider erscheint dann die folgende Meldung:


$ sudo -H -u nonet winecfg
err:imagelist:ImageList_ReplaceIcon no color!
err:imagelist:ImageList_ReplaceIcon no color!
err:imagelist:ImageList_ReplaceIcon no color!
err:imagelist:ImageList_ReplaceIcon no color!
Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly.
Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly.

xhost +localhost habe ich schon probiert, das scheint also nicht das Problem zu sein.

zyrusthc
28.09.07, 01:44
Vielleicht tut`s ein:

export DISPLAY=localhost:0.0

Und warum sudo ?
Probiere es doch einfach mal mit su!

su -c winecfg nonet


Greeez Oli

b3ll3roph0n
28.09.07, 05:09
Vielleicht tut`s ein:

export DISPLAY=localhost:0.0Die Variable DISPLAY wird dann von sudo gleich wieder zurückgesetzt. ;)
Also eher:
sudo -H -u nonet DISPLAY="localhost:0.0" wineblabla


xhost +localhost habe ich schon probiert, das scheint also nicht das Problem zu sein.Hm, ich mag xhost nicht besonders ...
Versuch mal:
$ xauth extract - $DISPLAY | sudo -H -u nonet xauth merge -
$ sudo -H -u nonet wineblabla


Und warum sudo ?Vermutlich um das Programm dann ohne Passwort starten zu können. ;)

DerAufgeklUser
01.10.07, 17:44
Mh... Hat nich jeholfen.


icke@wahnsystem ~ $ sudo -H -u nonet DISPLAY="localhost:0.0" winecfg
sudo: DISPLAY=localhost:0.0: command not found
icke@wahnsystem ~ $ xauth extract - $DISPLAY | sudo -H -u nonet xauth merge -
xauth: creating new authority file /home/nonet/.Xauthority
icke@wahnsystem ~ $ sudo -H -u nonet winecfg
Warning: could not find DOS drive for current working directory '/tmp/.wine-1001/server-303-5782', starting in the Windows directory.
err:imagelist:ImageList_ReplaceIcon no color!
err:imagelist:ImageList_ReplaceIcon no color!
err:imagelist:ImageList_ReplaceIcon no color!
err:imagelist:ImageList_ReplaceIcon no color!
ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: Permission denied
Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly.
Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly.


Die Meldung ist übrigens nicht auf winecfg beschränkt, das kommt bei jedem anderen Fensterprogramm auch. su - nonet funktioniert, aber wie b3ll3roph0n richtig anmerkte, nen einfacher Klick statt der Passworteingabe über die Kommandozeile wär halt eleganter.

b3ll3roph0n
02.10.07, 07:14
Mh... Hat nich jeholfen.Uhps (mein Feler ...). :o
Bei
$ xauth extract - $DISPLAY | sudo -H -u nonet xauth merge -
$ sudo -H -u nonet wineblablasollte DISPLAY natürlich gesetzt werden:
sudo -H -u nonet DISPLAY=":0.0" wineblabla

Ansonsten könntest du noch versuchen, die DISPLAY-Variable beim Aufruf von sudo zu übernehmen/beizubbehalten.

/etc/sudoers
Defaults:<deinUser> env_keep = "DISPLAY"

DerAufgeklUser
02.10.07, 15:47
Die DISPLAY Variable lautet auch ohne weitere Maßnahmen bei beiden usern ":0.0".

b3ll3roph0n
02.10.07, 16:13
Die DISPLAY Variable lautet auch ohne weitere Maßnahmen bei beiden usern ":0.0".Äh, bitte wie meinen? :confused:

sudo setzt die komplette Umgebung bis auf das nötigste zurück.
D.h. ohne irgendwelche Maßnahmen ist DISPLAY für den betreffenden sudo-User bestimmt nicht gesetzt.

Also:
Entweder gibst du die jeweilige Variable beim Aufruf von sudo an
sudo [OPTIONEN] ... VAR="Irgendwas" BEFEHLoder du bringst sudo bei, dass die betreffende Variable vom Environment des Users, der den sudo-Befehl ausführt, übernommen wird:
Defaults[:User] env_keep = "VAR"in der /etc/sudoers.

DerAufgeklUser
04.10.07, 18:10
Verstehe. Die erste Variante funktioniert wie gesagt nicht. Die zweite allerdings schon. Vielen Dank dafür!