Kedves Tanult Főrumtársak!
Adott egy asztali gép, amelyen fut(hat) egyszerre több felhasználó több X-e. Honnan lehet kideríteni adott felhasználó képernyőjét (az adott felhasználó $DISPLAY változójának tartalmát) root jogon?
Üdv:
KEA.
- 1325 megtekintés
Hozzászólások
Ubuntu Lucid, root-ként:
XUSER=pts # Felhasználónév.
for F in /var/run/gdm/auth-for-"$XUSER"-*/database; do
xauth -f "$F" list | perl -ne 'print "$1\n" if m@/unix(:\d\S*)@'
done
Általános megoldás: /proc/*/environ -ból kihalászod a $DISPLAY és $XAUTHORITY változókat, az xauth paranccsal kiiratod az adott $XAUTHORITY fájlhoz tartozó cookie-kat, és megpróbálsz velük az adott lokális $DISPLAY-hez kapcsolódni.
- A hozzászóláshoz be kell jelentkezni
Közben már én is kidolgoztam egy megoldást:
taxy@msi:~$ ps uax --forest
...
root 4500 10956 1800 ? Ss 09:55 0:00 /usr/sbin/gdm
root 4501 11360 2620 ? S 09:55 0:00 \_ /usr/sbin/gdm
root 4504 20892 14756 tty7 Ss+ 09:55 5:41 \_ /usr/bin/X :0 -br -audit 0 -auth /var/
taxy 4942 23072 5664 ? Ssl 09:56 0:00 \_ xfce4-session
...
És így látod melyik X process-nek a testvére az adott felhasználó process.
- A hozzászóláshoz be kell jelentkezni
ez hasonló ehhez :)
pstree -nu
- A hozzászóláshoz be kell jelentkezni
pstree -nu $(ps -ef | awk "\$2 ~ /$(sed /tmp/.X0-lock -e 's/ //g')/ { print \$3; }")
Ekkor csak "/tmp/.X0-lock" testvérei rajzolódnak ki. :)
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Köszi mindkettőtöknek a tippet.
Nálam Slack van; szétnéztem az environ fájlokban, de szerintem problémás(abb) megállapítani, hogy a temérdek /proc/
/environ fájlból melyikekre is van szükségem.
A ps számomra rokonszenvesebb:
ps uax --forest | grep X | grep ' :' | grep -v X11
pont a szükséges sorokat adja, amiből már ki lehet bányászni a szükséges számokat.
Köszi,
KEA.
- A hozzászóláshoz be kell jelentkezni
akkor tovább viddve a dolgot:
DISPLAY=$(ps uax --forest | grep X | grep ' :' | grep -v X11 | grep -oE "X.*:[0-9\.]*" | grep -oE ":[0-9\.]*")
- A hozzászóláshoz be kell jelentkezni
Ebből meg pont az nem derül ki hogy mi a felhasználó név.
Javaslom a fenti megoldást.
Ez lehet egy szkript aminek a paramétere:
/tmp/.X$1-lock
- A hozzászóláshoz be kell jelentkezni