Hi,
-------------------------------- Röviden a kérdés:
Mi és hogyan kellene, hogy beállítsa a DISPLAY változót Gnome alatt?-------------------------------- Hosszan a kérdés:
* SLES 11
* xrdp-n (+gnome) belépő userek
* Van egy program, amit root nevében kellene futtatni (mindegy, miért), opcionálisan desktopra rakott launcher-rel
probléma #1: sudoers ellenére gnomesu mindenáron root jelszót kér, amit a júzerek nem ismer(het)nek
probléma #1 megoldva rettenetes workaround-dal gugli alapján (/usr/bin/gnomesu lecserélése scriptre, ami az átnevezett eredeti gnomesu-t futtatja sudo-val) + sudoers módosítása
probléma #2: DISPLAY változó
Kész a launcher (gnomesu /path/to/app), de nem indítja az appot ("nem történik semmi").
Az a sanda gyanúm, hogy a DISPLAY változó a baja, mert ha terminálból indítom a "gnomesu /path/to/app" -ot, akkor "Cannot open display: "-t kapok.
Az "echo $DISPLAY" outptuja egy üres sor.
És itt jön akkor a kérdés: mi és hogyan állítja a DISPLAY változót?
Tudom, béna kérdés, de ezek az X-es dolgok nekem mindig nagyon misztikusak voltak. :)
Köszi!
- 895 megtekintés
Hozzászólások
Tipp: Tolj egy :0 -t a display változóba.
FathoM
- A hozzászóláshoz be kell jelentkezni
Sajnos ez nem ilyen egyszerű, ezeken elvileg túlvagyok.
Gnome Terminal:
:~> export DISPLAY=:0
:~> gnomesu xeyes
Cannot open display:
:~>
- A hozzászóláshoz be kell jelentkezni
Szerintem a /root
alatt a .bashrc
, .bash_profile
és .profile
file-ok lehetnek érdekesek. Úgy értem, ezek valamelyikében kellene egy
export DISPLAY=:0
Amúgy Fedora 25-ön nekem a
beesu xeyes
a root jelszó megadása után egyből működik.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Köszi a tippet, de a bash-os próbálkozás sem segített.
- A hozzászóláshoz be kell jelentkezni
Tipp nincs joga a rootnak csatlakoztni az non-root Xserverre? (de nem is tudom mikor láttam utoljára X-et :))
These methods will allow root to connect to a non-root user's X server, but present varying levels of security risks, especially if you run ssh. If you are behind a firewall, you may consider them to be safe enough for your requirements.
Temporarily allow root access
xhost
$ xhost +
will temporarily allow root, or anyone to connect your X server. Likewise,
- A hozzászóláshoz be kell jelentkezni
Azt hiszem, sikerült megoldani.
A teljes gugli arról szól, hogy exportáljak DISPLAY változót és akkor nekem jó lesz.
Arról sehol nincs szó, hogy mire kell beállítani, mert a mindenki által hajtogatott :0.0 rajtam nem segített.
Végül találtam egy doksit a DISPLAY-ről, ami alapján rájöttem, hogy meg kell keresnem azt a 6000 feletti nyitott tcp portot, ami az enyém (pl. 6099).
Ebből már lehet tudni, hogy "99" az én DISPLAY-em.
És akkor:
gnomesu DISPLAY=:99 xhost +; /path/to/app
és rohadjonmeg.
-------------------------
Az én esetemben (RDP-vel jövök) van rövidebb módszer is a DISPLAY kitalálására:
ps -ef | egrep -v "grep" | egrep "$(whoami).*X11rdp" | awk '{print $9}'
- A hozzászóláshoz be kell jelentkezni