отправить сообщение с Linux на winpopup - как ?

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

shweew
Сообщения: 42

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение shweew »

watashiwa_daredeska писал(а):
31.05.2012 10:40
Ну вот, значит для каждого активного пользователя на терминальном сервере есть DISPLAY, с которым работают клиенты, запущенные от имени этого пользователя. Чтобы показать сообщение пользователю, нужно запустить xmessage на этом DISPLAY. Для этого нужно получить Xauthority для этого DISPLAY. В простейшем случае, Xauthority хранится в ~$TERMUSER/.Xauthority. Т.е. предполагая, что мы можем выяснить всех $USER и соответствующие им $DISPLAY, получаем:

Код: Выделить всё

for user in $(list-users); do
  export DISPLAY=$(display-for-user $user)
  export XAUTHORITY=$(getent passwd $user | cut -d: -f6)/.Xauthority
 xmessage "Save your work! Reboot is going to happen NOW!" &
done
wait

Поиск пользователей и соответствующих им DISPLAY (list-users и display-for-user) зависит от конкретной реализации терминального сервера. Например, если на сервере используется ConsoleKit, можно попробовать ck-list-sessions.

Не хочет:

Код: Выделить всё

xmessage "Save"
No protocol specified
Error: Can't open display: 192.168.1.92:1

Если сделать xhost +, то показывает...

Код: Выделить всё

$XAUTHORITY
-bash: /home/knjzeva/.Xauthority: Отказано в доступе

Даже из под root...
И даже если права 777 на файл...
Ну, может у вас там винда в виртуальных машинах, и клиенты подключаются по RDP. Тогда проще настроить самбу и воспользоваться советом bormant.

Вообще то разговор идёт про Х-ы, как под самбой или виндой делать - я знаю...
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение watashiwa_daredeska »

shweew писал(а):
31.05.2012 12:55
Error: Can't open display: 192.168.1.92:1
Т.е. у вас X-сервера УЖЕ торчат портами наружу?

shweew писал(а):
31.05.2012 12:55
Если сделать xhost +, то показывает...

Код: Выделить всё

$XAUTHORITY
-bash: /home/knjzeva/.Xauthority: Отказано в доступе

Даже из под root...
И даже если права 777 на файл...
Команда "$XAUTHORITY" означает «выполни программу …». ~/.Xauthority — не программа. И xhost + делать не надо. Если права root, достаточно export XAUTHORITY=/home/knjzeva/.Xauthority. Если, конечно, 192.168.1.92:1 — дисплей пользователя knjzeva.
Спасибо сказали:
shweew
Сообщения: 42

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение shweew »

Заттрахался я уже...
Короче вот так работает безовсяких настроек Х-ов:

Код: Выделить всё

#!/bin/sh
for username in $(who -u | grep : | grep -v root | awk '{print $1}')
do
export  XAUTHORITY=/home/$username/.Xauthority
disp=$(who -u | grep $username | awk '{print $2}')
/usr/bin/X11/xmessage -fn -cronyx-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r -center -name ALARM -buttons OK -display $disp "TEKCT"&
done
exit 0
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение watashiwa_daredeska »

shweew писал(а):
31.05.2012 17:23
cat /home/$username/.Xauthority > folder/$username.file                                                              
export  XAUTHORITY=folder/$username.file
Что, неужели export XAUTHORITY=/home/$username/.Xauthority не работает? Только с копированием?
Спасибо сказали:
shweew
Сообщения: 42

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение shweew »

watashiwa_daredeska писал(а):
31.05.2012 17:38
shweew писал(а):
31.05.2012 17:23
cat /home/$username/.Xauthority > folder/$username.file                                                              
export  XAUTHORITY=folder/$username.file
Что, неужели export XAUTHORITY=/home/$username/.Xauthority не работает? Только с копированием?

Почему-то не получалось, сейчас попробовал - есть контакт, странно конечно...
Скрипт поправил.
Спасибо сказали:
shweew
Сообщения: 42

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение shweew »

:rolleyes:
Спасибо сказали:
shweew
Сообщения: 42

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение shweew »

watashiwa_daredeska писал(а):
31.05.2012 17:38
Что, неужели export XAUTHORITY=/home/$username/.Xauthority не работает? Только с копированием?


Вот такая вот фигня всётаки после перезагрузки сервера:

Код: Выделить всё

who -u
kivanova 192.168.1.92:1

Код: Выделить всё

terminal2:~ # export  XAUTHORITY=/home/kivanova/.Xauthority
terminal2:~ # $XAUTHORITY
-bash: /home/kivanova/.Xauthority: Отказано в доступе

Ну и само собой:

Код: Выделить всё

terminal2:~ # xmessage -display 192.168.1.92:1 "TEST"
Invalid MIT-MAGIC-COOKIE-1 keyError: Can't open display: 192.168.1.92:1

Есть идеи?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение sash-kan »

shweew писал(а):
01.06.2012 09:49
terminal2:~ # $XAUTHORITY
зачем вы выполняете содержимое переменной xauthority???
не нужно этого делать!
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение sash-kan »

shweew писал(а):
01.06.2012 09:49
Есть идеи?
на какой машине запущен x-сервер, к которому вы пытаетесь подключиться для вывода сообщения?
посмотрите на значение переменной DISPLAY у любого процесса, являющегося x-клиентом, подключенным к этому x-серверу·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
shweew
Сообщения: 42

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение shweew »

sash-kan писал(а):
01.06.2012 10:50
shweew писал(а):
01.06.2012 09:49
terminal2:~ # $XAUTHORITY
зачем вы выполняете содержимое переменной xauthority???
не нужно этого делать!

Без разницы:

Код: Выделить всё

terminal2:~ # export  XAUTHORITY=/home/mgurbenko/.Xauthority
terminal2:~ # xmessage -display 192.168.1.69:1 test
No protocol specified
Error: Can't open display: 192.168.1.69:1
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение sash-kan »

shweew писал(а):
01.06.2012 11:32
Без разницы
естественно·
второй мой пост прочитали? в нём всё понятно?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
shweew
Сообщения: 42

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение shweew »

sash-kan писал(а):
01.06.2012 11:44
shweew писал(а):
01.06.2012 11:32
Без разницы
естественно·
второй мой пост прочитали? в нём всё понятно?

Как посмотреть?
А может косяк в том что я через нескольkо SSH c -X подключений лезу на сервак?
Может если локально - так и заработает?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: отправить сообщение с Linux на winpopup - как ?

Сообщение sash-kan »

shweew писал(а):
01.06.2012 13:53
Как посмотреть?
как угодно·
главное — где: в переменных окружения процесса, являющегося x-клиентом·

hint: переменные окружения процесса доступны через псевдо-файл /proc/<pid>/environ (в файле переменные разделены символом 0x0)·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: