Pagina 1 di 1

script di root e notifica utente

Inviato: mar 5 giu 2007, 19:31
da stan
Ciao a tutti,
ho uno script eseguito da root con cron.
Se si verificano certe condizioni vorrei che l'utente in quel momento loggato in X ricevesse una notifica grafica tramite kdialog.
Come posso fare?
xhost? Se si, come devo usarlo nello script?
Grazie

Inviato: mar 5 giu 2007, 19:51
da targzeta
Non uso kdialog ma ho visto che accetta anche lui l'opzione
--display
quindi facendo

Codice: Seleziona tutto

kdialog --display :0.0
il programma parte direttamente sul server X.

Spina

P.S. prima magari provalo da una console (non sotto X) e vedi se funge.

Inviato: mar 5 giu 2007, 20:01
da stan
Ciao spina,
innanzitutto grazie.
Ovviamente da konsole dopo aver fatto 'su' e dato

Codice: Seleziona tutto

 /opt/kde/bin/kdialog --display :0.0
mi ritorna:

Codice: Seleziona tutto

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

kdialog: cannot connect to X server :0.0
La situazione è questa:
Il login da kdm lo fà l'utente. Grazie a cron in background gira lo script lanciato da root che esegue comandi che possono essere lanciati solo da root.
Se si verifica una certa condizione deve apparire sul desktop dell'utente un popup che notifica l'utente dell'evento.[/code][/list]

Inviato: mar 5 giu 2007, 21:03
da targzeta
sisi, avevo capito. Solo non mi aspettavo che il server X rifiutasse la connessione all'utente root. Il comando che ti ho dato dovrebbe funzionare, solo che ora il problema è:"abilitare l'utente root ad accedere al server X".

Se l'accesso al tuo server X è ben fatto dovresti avere un file nella home directory dell'utente che lancia il server X chiamato .Xauthority. Questo file contiene il cookie di chi è abilitato ad accedere al server X. Copia questo file all'interno della directory home del root e, quando questo cercherà di autenticarsi di nuovo al server X, ci riuscirà :)

Spina

Inviato: mar 5 giu 2007, 21:57
da stan
Anche stavolta Spina c'ha azzecato ;)
Ma è un metodo 'pulito' fare così?
Ora root può accedere al server X lanciato dall'utente in ogni momento e non limitatamente all'esecuzione dello script.
Non si può fare limitatamente all'esecuzione dello script? Magari tramite xhost?
Io ho fatto dei tentativi con xhost e ho letto appunti di inf. libera ma non ho ancora capito cosa potrei mettere nello script per limitare l'accesso al server X limitatamente all'esecuzione dello script.
Beh, comunque và già bene così...thanks once again.

Inviato: mer 6 giu 2007, 0:54
da targzeta
ti do un link:
http://www.xs4all.nl/~zweije/xauth-6.html

Limitare l'accesso solo ad uno script?mmm a questo punto fà si che lo script venga lanciato con i diritte dell'utente che avvia X :). Tanto crond è root, può fare quello che vuole. La soluzione che mi viene in mente così su due piedi è tramite 'su -c', comunque valuta.
Con linux puoi fare veramente quello che vuoi , basta pensarci su ;).

Spina

Inviato: mer 6 giu 2007, 13:41
da stan
ok, approfondisco di più e cerco una soluzione ottimale.
grazie