Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Internet a sítě => Téma založeno: teodeo 23 Srpna 2008, 22:34:44
-
Přihlásím se na vzdálený počítač přes ssh. Potřebuji předat zprávu uživateli, který na něm právě pracuje, ale nemá otevřený terminál - je přihlášen jen v grafickém rozhraní. Jak to mám udělat? Hledal jsem na netu, ale našel jsem jen mesg, talk a wall.
-
Posli mu SMS ;)
Spis by mne zajimalo, jak mu ji posilas, kdyz ten terminal ma pustenej...
-
Posli mu SMS ;)
Spis by mne zajimalo, jak mu ji posilas, kdyz ten terminal ma pustenej...
prave pomoci tech nastroju mseg, talk a wall (osobne teda znam jenom talk)
2 teodeo: a kdyz mu zkusis napsat pres talk tak se mu asi ten terminal neotevre, co???
-
Ne, právě že se neotevře (když zkusím wall).
A talk mi nefunguje. Je to stejný problém jako na http://ubuntuforums.org/showthread.php?t=225426
....Error on read from talk daemon: Connection refused. Press any key...
Zatím se mi to nepodařilo vyřešit. Našel jsem nějaký popis http://ubuntuforums.org/showthread.php?p=1398433#post1398433, ale xined nemám zatím nainstalovaný. Je to ono?
-
no, to je jednoduchy jako facka :D ..
co takhle treba:: DISPLAY=:0 xterm -e 'echo ahoj && sleep 10' // ;)
-
Asi to nebude tak jednoduché. Upozorňuji, že jsem na tom kompu přihlášen přes ssh. Ten příklad mi nefunguje. Hlásí mi to
$ DISPLAY=:0 xterm -e 'echo ahoj && sleep 10'
No protocol specified
xterm Xt error: Can't open display: :0
-
Asi to nebude tak jednoduché. Upozorňuji, že jsem na tom kompu přihlášen přes ssh. Ten příklad mi nefunguje. Hlásí mi to
$ DISPLAY=:0 xterm -e 'echo ahoj && sleep 10'
No protocol specified
xterm Xt error: Can't open display: :0
<< uff .. tak se asi display nejmenuje ':0' :) heh. to jej jak s malym ditetem .. jak se jmenuji spustena Xka zjistis treba z vypisu ::
ps faux | grep X
muj postup funguje naprosto nadherne, overil jsem ho temito kroky na dvou ruznych uzivatelich ::
a) useradd -d /tmp/xx -m testuser // vytvorim si uzivatele testuser
passwd testuser // nastavim mu heslo
b) // zmacknu ctrl+alt+F5 a prihlasim se jako testuser a zadam
X :1.0 & // vytvorim dalsi instanci xserveru na /dev/tty8, a prepnu se z5 pomoci ctrl+alt+F5
xauth add :1.0 . `mcookie` & // magic cookies pro nase nova xka
DISPLAY=:1.0 xterm & // hodim si tam jako testuser xterm
c) // prepnu se pomoci ctrl+alt+F7 do mych normalnich X a zadam (uz zase jako normalni uzivatel ntz)::
ps faux | grep X // to mi ukaze ::
nettezzaumana@kokina:~> ps faux | grep X
root 2508 4.6 5.2 58880 54536 tty7 RLs+ 21:51 0:33 \_ /usr/bin/Xorg -br -nolisten tcp :0 vt7 -auth /var/lib/xdm/authdir/authfiles/A:0-i4ZIlh
1000 2946 0.0 0.0 3804 484 ? Ss 21:52 0:00 \_ /usr/bin/gpg-agent --sh --daemon --write-env-file /home/nettezzaumana/.gnupg/agent.info /usr/bin/ssh-agent /bin/bash /etc/X11/xinit/xinitrc
1000 2947 0.0 0.0 5612 668 ? Ss 21:52 0:00 \_ /usr/bin/ssh-agent /bin/bash /etc/X11/xinit/xinitrc
root 4160 2.7 2.6 34700 27700 tty8 SLs+ 22:02 0:01 \_ X :1.0
1000 4241 0.0 0.0 3064 712 pts/2 S+ 22:03 0:00 \_ grep X
// z toho je patrne, ze u me v suse se jmenuje nulta instance Xserveru :0 a bezi mi jeste jedna aka :1.0, takze zadam
DISPLAY=:1.0 xclock & // a prepnu se pomoci ctrl+alt+F8 do xsek testusera a hle, je tam xclock .. ;)
.. takze proc by to neslo ;)
-
^^^^ err .. pres ssh to vazne nejde
-
Nedivím se, že to nejde. Aby mi někdo přes ssh najednou otevřel okno konzole na mém desktopu, tak to by se mi nelíbilo. Podle mého názoru to je i proti bezpečnostním pravidlům. Nicméně existuje notifikační služba, která vypisuje různá hlášení na desktop. Je to notification-daemon a lze mu poslat jakoukoliv zprávu pomocí příkazu notify-send. Ten se nachází v balíčku libnotify-bin.
notify-send -i /usr/share/icons/hicolor/48x48/apps/gnome-brightness-applet.png -t 3000 -u normal BRIGHTNESS "Increasing brightness..."
notify-send -i face-plain -t 1500 -u normal --hint=int:'x':340 -h int:'y':680 Brightness "Brightness <i>UP</i>"
Příkaz notify-send funguje dobře na mém vlastním desktopu, ale ne už pro desktop jiného uživatele. Předpokládám, že se zde zase naráží na bezpečnostní problém a oprávnění:
ssh user@somewhere
user@somewhere$ notify-send -i face-smile Test 'zkouška spojení'
libnotify-Message: Unable to get session bus: dbus-launch failed to autolaunch D-Bus session: Autolaunch error: X11 initialization failed.
Nevíte jak na to?
-
Ještě jsem zapomněl: Když si zamknete desktop, tak je tam i tlačítko "Leave message", do kterého vám mohou ostatní lidé, co si k tomu kompu sednou, napsat zprávu. Tak to bych přesně potřeboval. Jestlipak tam lze tu zprávu vložit i přes konzoli?
-
No, tak jsem to nakonec vyřešil pomocí notify-send a roury. Na straně uživatele se po jeho zalogování spustí skript, který vytvoří rouru a naslouchá na ní. Když něco přijde, tak to předá příkazu notify-send.
/usr/local/bin/notify-from-pipe:
#!/bin/bash
# dependencies:
# sudo apt-get install libnotify-bin
# vytvořím rouru
mkfifo /tmp/roura
# přidám práva, abych do ní mohl zapisovat
chmod go+w /tmp/roura
# spustím naslouchací smyčku
while [ 1 ]
do
notify-send -i face-smile 'From boss:' "`cat /tmp/roura`"
done
Pak už jenom stačí zapisovat do roury:
$ ssh user@comp
user@comp$ echo 'Moje zpráva' > /tmp/roura
Na to jsem si napsal malého klienta:
/usr/local/bin/notify-client:
#!/bin/bash
history -r .notify_history
while [ 1 ]
do
echo -n "->: "; read -e message
if [ -z "$message" ]; then
break
fi
history -s "$message"
echo $message > /tmp/roura
done
history -w .notify_history
Naslouchací skript se spouští pod uživatelem, kterému se mají zprávy zobrazovat. Do jeho profilu se vloží buďto pomocí gnome-session-properties (systém / volby / sezení: Programy po přihlášení - přidat) a nebo, když v mém případě mám přístup jen přes ssh, lze rovnou nakopírovat:
cat > /home/user/.config/autostart/notify-from-pipe.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=Notify from pipe
Comment=Příjem hlášení z roury
Exec=notify-from-pipe
X-GNOME-Autostart-enabled=true
Ve finále jsem si s těmi skripty ještě trochu pohrál a přidal i ovládání notify ikony (v systému jsem našel 15 různých smajlíků).
-
Zdravím,
V prípade že sa chcem vyhnúť zdĺhavému prihlasovaniu na stroj ktorému chcem poslať správu, malo by teoreticky fungovať niečo takéto:
#!/bin/bash
history -r .notify_history
while [ 1 ]
do
echo -n "->: "; read -e message
if [ -z "$message" ]; then
break
fi
history -s "$message"
ssh deafboy@192.168.1.7 'echo $message > /tmp/roura'
done
history -w .notify_history
Autentifikácia prebieha pomocou kľúča (bez zadávania hesla)
Notifikácia sa v tomto prípade zobrazí, ale bez požadovaného textu.
edit________________________________
Tak som zistil že text sa zrazu nezobrazuje ani keď správu posielam cez terminál na tom PC.
Niekedy sa správa zobrazí, no väčšinou vyskočí prázdne okno (je tam len ikonka a "From Boss")