Zmienna $DISPLAY

Problemy dotyczące programowania.

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
bzyk
Moderator w st. spocz.
Posty: 991
Rejestracja: 2004-06-05, 06:32
Lokalizacja: Pszczyna
Kontakt:

Zmienna $DISPLAY

Post autor: bzyk »

Witam.

Jak (będąc rootem) wyciągnąć zmienną $DISPLAY danego usera?
Próbowałem już;
su kowalski
env (lub set | grep DISPLAY), niestety nie widzę tam tej zmiennej.
In /dev/null no one can hear you scream.
mati0712
Użytkownik
Posty: 65
Rejestracja: 2007-05-18, 20:05

Re: Zmienna $DISPLAY

Post autor: mati0712 »

Można odczytać z /proc/proces_użytkownika/environ
acek
Użytkownik
Posty: 47
Rejestracja: 2006-09-26, 21:27
Kontakt:

Re: Zmienna $DISPLAY

Post autor: acek »

mati0712 pisze:Można odczytać z /proc/proces_użytkownika/environ
Należy pamiętać, że zmienne środowiskowe to prywatna sprawa każdego procesu, a wartości w /proc nie muszą odpowiadać zawartości tablicy environ(7).
Awatar użytkownika
Barca
Użytkownik
Posty: 277
Rejestracja: 2005-01-24, 20:25

Re: Zmienna $DISPLAY

Post autor: Barca »

Kod: Zaznacz cały

#!/bin/bash
X_USER="barca"
X_SERVERAUTH=`ls -alt /home/$X_USER | grep .serverauth | head -n 1 | tr '.' ' ' | awk '{ print $10 }'`
X_DISPLAY=`ps aux | grep X | grep $X_SERVERAUTH | grep -v grep | awk '{ print $12 }'`
echo $X_DISPLAY

Kod: Zaznacz cały

lonelysailor temp # ./test.sh
:0
Ostatnio zmieniony 2009-03-29, 09:23 przez Barca, łącznie zmieniany 1 raz.
Awatar użytkownika
bzyk
Moderator w st. spocz.
Posty: 991
Rejestracja: 2004-06-05, 06:32
Lokalizacja: Pszczyna
Kontakt:

Re: Zmienna $DISPLAY

Post autor: bzyk »

Dzięki mati. Widzę że tam można to odczytać.
Barca, mój Debian nie ma takiego pliku. Sa tylko .serverauth.xxxx (gdzie xxxx to różne numery) i to są pliki binarne.
acek mógłbyś rowinąć?

Generalnie to chodzi mi o skonstruowanie skryptu który (odpalony przez roota) mógłby wykonać coś takiego;
/usr/bin/kdesktop_lock --forcelock
Czyli chcę mieć możliwość zablokowania ekranu danemu userowi. No i aby root mógł to wykonać potrzebuję tam jeszcze --display <wartość danego usera>. To dlatego szukam tego $DISPLAY.

A może macie jakieś inne pomysły na zablokowanie ekranu danemu userowi? Chciałbym to robić za pomocą basha (bo tak mi najwygodniej).
In /dev/null no one can hear you scream.
Awatar użytkownika
Barca
Użytkownik
Posty: 277
Rejestracja: 2005-01-24, 20:25

Re: Zmienna $DISPLAY

Post autor: Barca »

bzyk, po prostu to uruchom, grepowanie .serverauth nie dotyczy tylko pliku .serverauth tylko wszystkich plików, w których jest ten ciąg znaków.
Awatar użytkownika
bzyk
Moderator w st. spocz.
Posty: 991
Rejestracja: 2004-06-05, 06:32
Lokalizacja: Pszczyna
Kontakt:

Re: Zmienna $DISPLAY

Post autor: bzyk »

Cosik nie tak...

Kod: Zaznacz cały

glowny:~/work# ./plik
+ X_USER=bzyk
++ ls -alt /home/bzyk
++ grep .serverauth
++ head -n 1
++ tr . ' '
++ awk '{ print $10 }'
+ X_SERVERAUTH=4036
++ grep X
++ grep 4036
++ ps aux
++ grep -v grep
++ awk '{ print $12 }'
+ X_DISPLAY=
+ echo

glowny:~/work# ls /home/bzyk/.serverauth.
.serverauth.3816  .serverauth.4036  .serverauth.4134  .serverauth.5634

glowny:~/work# ps axu | grep X
root      3272  0.1  1.6  66716 59560 tty7     SLs+ Mar29   1:49 /usr/bin/X -br -nolisten tcp -dpi 100 :0 vt7 -auth /var/run/xauth/A:0-WxANq3
root      3292  0.0  0.0   2216   692 pts/2    S+   20:09   0:00 grep X
bzyk      3576  0.0  0.2  56460  9080 ?        S    Mar29   0:01 kio_http [kdeinit] https /tmp/ksocket-bzyk/klauncheriXxH2a
bzyk     16615  0.0  0.1  27052  5240 ?        S    Mar29   0:00 kio_file [kdeinit] file /tmp/ksocket-bzyk/klauncheriXxH2a.
root     26504  0.0  0.7  32608 25900 tty8     SLs+ Mar29   0:02 /usr/bin/X -br -nolisten tcp -dpi 100 :1 vt8 -auth /var/run/xauth/A:1-pozHL5
Czyli wychodzi na to, ze nie mam procesu z takim PID jak w .serverauth.*
In /dev/null no one can hear you scream.
ODPOWIEDZ