Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
 Registrieren
    Profil      Private Nachrichten   Login
interaktive Nachricht an entfernten Gnome Shell User senden?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
gast
Gast





BeitragVerfasst am: 29. Sep 2012 23:25   Titel: interaktive Nachricht an entfernten Gnome Shell User senden? Antworten mit Zitat

Liebes Forum,

bitte helft mir bei folgendem Problem:

Ich habe einen Server, welcher unter CentOS 6.2 läuft.
Dieser sichert einige Clients die unter Fedora 17 mit Gnome 3.4 laufen.
Nachdem das Backup fertig ist löst der Server auf den Clients mittels ssh einen shutdown -h +15 aus.

Bis daher funktioniert auch alles perfekt.

Nur mitunter sitzt noch ein User auf einem der Clients.
In diesem Fall hätte ich gerne, das der User ein PopUp eventuell über zenity bekommt, welches ihm die Möglichkeit gibt
den shutdown so er antwortet um eine Stunde zu verschieben und dann wieder fragen.
Sollte der User nicht innerhalb von 15 Minuten antworten soll der shutdown jedoch durchgeführt werden.

Mein größtes Problem dabei ist, dass alle meine Test die ich lokal am Client gemacht habe zumindest ein PopUp produzieren, das PopUp
jedoch wenn ich das Script, welches am Client liegt, über ssh auslöse am Server erscheint und nicht am Client.

Derzeit habe ich zum Testen am Client folgendes Script:


Code:
#!/bin/sh
 
sudo -u user -i export DISPLAY=:0; notify-send -i info -t 0 "Info" "Das System wird in 15 Minuten heruntergefahren"
sudo -u user -i export DISPLAY=:0; zenity --question --text="Soll das System in 15 Minuten heruntergefahren werden?"
shutdown -h +15


Das notify-send bewirkt eine Nachricht im unteren Bildschirmbereich.
Der zenity Zeile fehlt noch jede Logik, wobei ich auch hier über Input erfreut währe.

Danke schon einmal im Voraus.
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3273

BeitragVerfasst am: 30. Sep 2012 12:22   Titel: Re: interaktive Nachricht an entfernten Gnome Shell User senden? Antworten mit Zitat

gast hat folgendes geschrieben::

Mein größtes Problem dabei ist, dass alle meine Test die ich lokal am Client gemacht habe zumindest ein PopUp produzieren, das PopUp
jedoch wenn ich das Script, welches am Client liegt, über ssh auslöse am Server erscheint und nicht am Client.

Ich vermute, du benutzt ssh -X? Dann ist das normal: Programme werden auf einem fremden Rechner ausgeführt, aber das Display auf den Rechner umgeleitet, auf dem ssh -X gestartet wurde. So will man das ja bei ssh -X gerade haben.

Du willst stattdessen eine normale ssh-Sitzung benutzen und dem aufrufenden Benutzer auf dem Zielrechner die Berechtigung geben, Fenster auf dem lokalen Display zu öffnen. Dazu musst du in deinem Skript mittels xauth den MIT-MAGIC-COOKIE des Benutzers importieren, dem gerade das Display gehört und die DISPLAY-Variable auf :0 setzen.
Code:

# su DISPLAYUSER -c "xauth extract - :0" | xauth merge -
# export DISPLAY=:0
# xterm

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

gast
Gast





BeitragVerfasst am: 30. Sep 2012 14:30   Titel: Re: Re: interaktive Nachricht an entfernten Gnome Shell User senden? Antworten mit Zitat

Danke für Deine Antwort.

Du hast recht, in meinen Versuchen verwendete ich ssh -X.

Ich habe Deinen Code am Client als /root/bin/send_shutdown_message.sh abgelegt.

Code:
#!/bin/sh

su user -c "xauth extract - :0" | xauth merge -
export DISPLAY=:0
xterm


Wenn ich das Script am Server als root
aufrufe erhalte ich am Server folgende Fehlermeldung anstatt ein xterm am Client:

Code:
[root@server]# ssh root@client /root/bin/send_shutdown_message.sh
No matches found, authority file "-" not written
xauth: (argv):1:  unable to read any entries from file "(stdin)"
No protocol specified
Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
xterm: Xt error: Can't open display: %s
[root@server]#


gast
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3273

BeitragVerfasst am: 30. Sep 2012 22:18   Titel: Antworten mit Zitat

No matches found, authority file "-" not written bedeutet, dass xauth extract keinen passenden Cookie für :0 gefunden hat. Gibt es dieses Display auf der Zielmaschine überhaupt? Ist "user" der Benutzer, dem das Display gehört?

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

gast
Gast





BeitragVerfasst am: 05. Okt 2012 22:35   Titel: Antworten mit Zitat

Den user "user" gibt es auf der Zielmaschine und er ist auch mittels Gnome eingestiegen.

Daher gehe ich davon aus das es das Display auch gibt.
Eventuell verstehe ich auch etwas falsch.

Wenn ich am Client, also dort wo der user "user" eingestiegen ist folgendes eingebe erhalte ich:

Code:
[user@client ~]$ export|grep -i display
declare -x DISPLAY=":0"


mache ich dasselbe über ssh erhalte ich:

Code:
ssh user@client
[user@client ~]$ export|grep -i display
 


Also kein DISPLAY aus der Ferne jedoch sehr wohl lokal.
Aber wie gesagt, vielleicht verstehe ich auch etwas falsch.

Jedenfalls Danke für Deine Antwort.

gast
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3273

BeitragVerfasst am: 06. Okt 2012 11:14   Titel: Antworten mit Zitat

Dann setze das Display, bevor du xauth extract durchführst.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

gast
Gast





BeitragVerfasst am: 06. Okt 2012 19:18   Titel: Antworten mit Zitat

auch wenn ich

Code:
su user -c "DISPLAY=:0; export DISPLAY; xauth extract - :0" | xauth merge -
export DISPLAY=:0
xterm


im Script am Client welches ich als root am Server durchführe erhalte ich die selbe Fehlermeldung.

DISPLAY=":0" ist nur exportiert wenn ich lokal am Client einsteige.

Auch ein xauth list über ssh zeigt kein DISPLAY=:0 sondern nur welche ab :10
Es ist dabei egal ob ich vom Server per ssh als user oder als root am Client einsteige.

Ich bin jedenfalls schon am verzweifeln.

gast
 

hastifranki



Anmeldungsdatum: 06.05.2006
Beiträge: 220

BeitragVerfasst am: 07. Okt 2012 13:02   Titel: Antworten mit Zitat

Hallo,

um zu prüfen, ob es prinzipiell funktioniert, habe ich mal folgendes getestet:

In einem Terminal auf dem Server habe ich

xhost +

ausgeführt.

Danach habe ich im Terminal auf dem Client

ssh frank@server.local

und anschließend

xterm -display :0

eingegeben. Das Fenster erschien auf dem Server.

Ich weiß, dass man xhost vergessen sollte. Vielleicht kann man sich aber so an die Lösung des Problems heran tasten.

(Server und Client habe ich aus ssh-Sicht betrachtet.)

Viele Grüße
Frank
 
Benutzer-Profile anzeigen Private Nachricht senden

gast
Gast





BeitragVerfasst am: 07. Okt 2012 13:58   Titel: Antworten mit Zitat

Danke für die Antwort.

Ich habe dass mal schnell probiert und es hat funktioniert.

In wie weit ich diese Methode für mein ursprüngliches Problem nutzen kann muss
ich erst ausprobieren.

Danke
gast
 

hastifranki



Anmeldungsdatum: 06.05.2006
Beiträge: 220

BeitragVerfasst am: 07. Okt 2012 15:18   Titel: Antworten mit Zitat

Nach der Anmeldung ssh frank@server.local funktioniert auch folgendes Skript bei mir:

Code:
#!/bin/bash
export XAUTHORITY=/var/run/gdm3/auth-for-frank-XXXXXX/database
xauth extract cookie :0
xauth merge cookie
xterm -display :0


XXXXXX muss immer neu gesetzt werden.

Bei mir läuft Debian Squeeze auf den Rechnern.

Viele Grüße
Frank
 
Benutzer-Profile anzeigen Private Nachricht senden

gast
Gast





BeitragVerfasst am: 07. Okt 2012 15:31   Titel: Antworten mit Zitat

Danke

ich werde auch diese Anregung probieren und dem Forum Rückmeldung geben.

gast
 

gast
Gast





BeitragVerfasst am: 07. Okt 2012 19:16   Titel: Antworten mit Zitat

Mit obiger Methode erhalte ich folgende Fehlermeldungen:
(Dein Script habe ich als /root/bin/xmsg abgelegt.)

Code:
[root@server ~]# ssh client
Last login: Sun Oct  7 20:11:17 2012 from server
[root@client ~]# cd bin
[root@client]# cat ./xmsg
#!/bin/bash
export XAUTHORITY=/var/run/gdm/auth-for-user-rycXrS/database
xauth extract cookie :0
xauth merge cookie
xterm -display :0

[root@client bin]# ./xmsg
xauth: (argv):1:  extract:  unable to open file cookie
xauth: (argv):1:  unable to open extraction file "cookie"
No matches found, authority file "cookie" not written
xauth: (argv):1:  merge:  unable to open file cookie


"auth-for-frank-XXXXXX" habe ich an meine Verhältnisse angepasst.
Die Datei /var/run/gdm/auth-for-user-rycXrS/database ist vorhanden

Hat jemand von euch eine leicht verständliche Anleitung zu X im allgemeinen?

Ich verwende auf meinen Servern keine Grafikoberfläche und auf meinem administrativem
Client zwar Gnome jedoch in der Regel nur zum öffnen von Terminals bzw. mit unter
zum Aufruf diverser Admin Tools durch Webbrowser.

gast
 

hastifranki



Anmeldungsdatum: 06.05.2006
Beiträge: 220

BeitragVerfasst am: 08. Okt 2012 6:59   Titel: Antworten mit Zitat

Hallo,

wie schon oben beschrieben, habe ich mich wie folgt angemeldet: frank@server.local
Das Script habe ich unter ~ abgelegt und und als normaler user ausgeführt. (Ich habe mich nicht als root angemeldet und das Script nicht als root ausgeführt.)

Da bei dir auth-for-user- steht, solltest du das Script auch als user ausführen.

Viele Grüße
Frank
 
Benutzer-Profile anzeigen Private Nachricht senden

gast
Gast





BeitragVerfasst am: 11. Okt 2012 22:50   Titel: Antworten mit Zitat

Danke

ich werde auch diese Anregung am Wochenende probieren und dem Forum Rückmeldung geben.

gast
 

Blesow



Anmeldungsdatum: 19.12.2012
Beiträge: 2

BeitragVerfasst am: 19. Dez 2012 13:18   Titel: Antworten mit Zitat

hastifranki hat folgendes geschrieben::
Hallo,

wie schon oben beschrieben, habe ich mich wie folgt angemeldet: frank@server.local
Das Script habe ich unter ~ abgelegt und und als normaler user ausgeführt. (Ich habe mich nicht als root angemeldet und das Script nicht als root ausgeführt.)

Da bei dir auth-for-user- steht, solltest du das Script auch als user ausführen.

Viele Grüße
Frank

So ist es. Je nachdem, unter welcher Kategorie man das Script einrichtet, muss man sich auch unter der entsprechenden Kategorie anmelden: root, user, usw. usf.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy