[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume]


Capitolo 617.   nanoLinux: VNC con «vncrc»

nanoLinux prevede un utilizzo semplificato di VNC (capitolo 159), attraverso l'uso dello script vncrc, al quale fanno riferimento una serie di collegamenti simbolici. Il sistema ha lo scopo di facilitare la realizzazione di lezioni in video-conferenza, oppure, il controllo remoto di ciò che fanno gli studenti.

Il meccanismo proposto dallo script vncrc è molto semplice e non prevede sistemi di sicurezza ferrei, per impedire che qualcuno si intrometta nella comunicazione.

617.1   Organizzazione e funzionamento

Come accennato nella premessa, vncrc può essere avviato attraverso una serie di collegamenti simbolici che puntano a vncrc, oppure specificando il comando come argomento, oppure ancora attraverso un menù. La tabella successiva riepiloga i vari comandi disponibili al riguardo.

Tabella 617.1. Comandi associati allo script vncrc.

Comando Descrizione
vncs
Si avvia da una console per attivare un servente VNC, definendo una parola d'ordine.
vncss
Si avvia da una console per attivare un servente VNC condivisibile, definendo una parola d'ordine.
vncsc
Si avvia da una console per attivare un servente VNC, definendo una parola d'ordine, assieme al cliente VNC necessario a interagire con questo.
vncssc
Si avvia da una console per attivare un servente VNC condivisibile, definendo una parola d'ordine, assieme al cliente VNC necessario a interagire con questo.
vncv nodo
vncv-ssh nodo
Si avvia da una finestra di terminale per vedere cosa avviene con il servente VNC in funzione presso il nodo indicato. La seconda delle due forme di utilizzo, implica la creazione di un tunnel SECSH per garantire un collegamento cifrato.
vncc nodo
vncc-ssh nodo
Si avvia da una finestra di terminale per interagire con il servente VNC in funzione presso il nodo indicato. La seconda delle due forme di utilizzo, implica la creazione di un tunnel SECSH per garantire un collegamento cifrato.
vncvx nodo
vncvx-ssh nodo
Si avvia da una console per visualizzare il servente VNC in funzione presso il nodo indicato, avviando contestualmente anche il servente X, funzionando poi a tutto schermo. Per chiudere la connessione, senza interrompere il lavoro del servente VNC remoto, si deve usare la combinazione [Ctrl Alt Backspace]. La seconda delle due forme di utilizzo, implica la creazione di un tunnel SECSH per garantire un collegamento cifrato.
vnccx nodo
vnccx-ssh nodo
Si avvia da una console per interagire con il servente VNC in funzione presso il nodo indicato, avviando contestualmente anche il servente X, funzionando poi a tutto schermo. Per chiudere la connessione, senza interrompere il lavoro del servente VNC remoto, si deve usare la combinazione [Ctrl Alt Backspace]. La seconda delle due forme di utilizzo, implica la creazione di un tunnel SECSH per garantire un collegamento cifrato.
sharedx
Si avvia da una console, al posto di startx, per fare utilizzare la grafica agli studenti, consentendo a un insegnante di controllare ciò che avviene.
nosharedx
Si avvia da una console, al posto di startx, per fare utilizzare la grafica a un insegnante, consentendo agli studenti di visualizzare ciò che avviene. Può essere usato naturalmente anche per fare l'opposto, quando l'insegnante vuole solo la possibilità di visualizzare le schermate, senza doverle anche controllare.
viewsharedx nodo...
Si avvia da una finestra di terminale, indicando una serie di nodi da controllare, per visualizzare il funzionamento dei serventi VNC avviati lì attraverso lo script sharedx o nosharedx.
takesharedx nodo...
Si avvia da una finestra di terminale, indicando una serie di nodi da controllare, per controllare il funzionamento dei serventi VNC avviati lì attraverso lo script sharedx.

Questi comandi sono pensati per due situazioni comuni: un insegnante che ha la necessità di mostrare a tutti quello che sta facendo, oppure un insegnante che ha bisogno di controllare in qualche modo ciò che stanno facendo gli studenti.

Nel primo caso, l'insegnante può avviare il comando vncsc, specificando la parola d'ordine che poi deve comunicare agli studenti, i quali si possono collegare al servente VNC dell'insegnante, con il comando vncv o vncvx. In alternativa l'insegnante può usare il comando nosharedx, in modo che gli studenti possano vedere ciò che fa, senza usare alcuna parola d'ordine, attraverso viewremotex.

Nel secondo caso, viene richiesto agli studenti di avviare X per mezzo del comando sharedx o nosharedx, in modo che l'insegnante possa controllare attraverso il comando takesharedx o viewremotex rispettivamente. Si osservi che con il comando sharedx, viewremotex (viewsharedx) e takesharedx non viene inserita alcuna parola d'ordine, perché ne viene usata una prestabilita.

Tutto il meccanismo è organizzato in modo tale da far funzionare il servente VNC sulla stazione grafica :1, pertanto questa informazione non viene mai impartita.

I comandi che avviano un servente VNC richiedono di specificare espressamente la geometria dello schermo:

.---------------geometry-----------------.
| Select VNC server geometry:            |
| .------------------------------------. |
| |   1024x768   default               | |
| |   1440x1080                        | |
| |   1408x1056                        | |
| |   1376x1032                        | |
| |   1344x1008                        | |
| |   1312x984                         | |
| |   1280x960                         | |
| |   1248x936                         | |
| |   1216x912                         | |
| |   1184x888                         | |
| |   1152x864                         | |
| |   1120x840                         | |
| |   1088x816                         | |
| |   1056x792                         | |
| |   1024x768   usual resolution      | |
| |   992x744                          | |
| |   960x720                          | |
| `---v(+)-----------------------------' |
|----------------------------------------|
|       <  OK  >     <Cancel>            |
`----------------------------------------'

Se si vuole accedere al servente VNC attraverso una finestra, conviene utilizzare una geometria leggermente inferiore a quella dello schermo che si ha effettivamente a disposizione. Per esempio, se si utilizza il sistema grafico a una risoluzione di 1024×768, può essere conveniente avviare il servente VNC a 960×720.

Il menù dello script vncrc si presenta in due modi diversi, a seconda che sia avviato da una console o da un terminale all'interno di X:

.------------------------nanoLinux VNC run commands--------------------------.
| nanoLinux VNC: VNC server works at ":1" and X works at ":0"                |
| .------------------------------------------------------------------------. |
| |vncs           srvr             + new password                          | |
| |vncss        shsrvr             + new password                          | |
| |vncsc          srvr + cclnt + X + new password                          | |
| |vncssc       shsrvr + cclnt + X + new password                          | |
| |vnccx                 cclnt + X + password "/home/tizio/.vnc/passwd"    | |
| |vncvx                 vclnt + X + password "/home/tizio/.vnc/passwd"    | |
| |nosharedx      srvr + cclnt + X + default password                      | |
| |sharedx      shsrvr + cclnt + X + default password                      | |
| |takesharedx           cclnt + X + default password                      | |
| |viewsharedx           vclnt + X + default password                      | |
| |viewremotex           vclnt + X + default password                      | |
| `------------------------------------------------------------------------' |
|                                                                            |
|----------------------------------------------------------------------------|
|                       <  OK  >             <Cancel>                        |
`----------------------------------------------------------------------------'
.-----------------------nanoLinux VNC run commands--------------------------.
| nanoLinux VNC: remote VNC server works at ":1"                            |
| .-----------------------------------------------------------------------. |
| |   vncc         cclnt + password "/home/tizio/.vnc/passwd"             | |
| |   vncv         vclnt + password "/home/tizio/.vnc/passwd"             | |
| |   takesharedx  cclnt + default password                               | |
| |   viewsharedx  vclnt + default password                               | |
| |   viewremotex  vclnt + default password                               | |
| `-----------------------------------------------------------------------' |
|---------------------------------------------------------------------------|
|                     <  OK  >            <Cancel>                          |
`---------------------------------------------------------------------------'

Le sigle hanno lo scopo di sintetizzare il senso dei vari comandi: srvr indica l'avvio di un servente VNC; vclnt indica l'avvio di un cliente VNC; X indica l'avvio di un servente X (si usa per avviare il cliente VNC da console, usandolo poi a tutto schermo); il prefisso sh, rappresenta il fatto che è consentita la condivisione con più clienti VNC.

La parola d'ordine può essere predefinita, oppure deve essere specificata all'avvio del servente VNC. Quando invece si avvia un cliente VNC, se non si tratta della parola d'ordine predefinita, questa viene letta dal file ~/.vnc/passwd; se non è la stessa richiesta dal servente VNC, la si deve rimpiazzare.

Tabella 617.5. Nomi e sigle mnemoniche utilizzate.

Nome o sigla Descrizione
vncs
VNC server
vncss
VNC shared server
vncsc
VNC server with client
vncssc
VNC shared server with client
vnccx
VNC controlling X
vncvx
VNC viewing X
srvr
server
shsrvr
shared server
cclnt
controlling client
vclnt
viewing client

617.2   Utilizzo di un elaboratore remoto

Si ipotizza la situazione in cui, per qualche ragione, si vuole utilizzare X presso un elaboratore remoto, offrendo ad altri la possibilità di visualizzare ciò che succede. Per fare questo occorre avviare presso l'elaboratore remoto il comando vncs, mentre localmente si può utilizzare il comando vnccx per poterlo controllare e vncvx per la sola visualizzazione.

Figura 617.6. Utilizzo di un servente X presso un elaboratore remoto.

vncs, vncss, vnccx e vncvx

La figura mostra due situazioni sovrapposte; in condizioni normali, si deve avviare presso l'elaboratore remoto il comando vncs, ma se si vuole consentire il controllo simultaneo da parte di più elaboratori con il comando vnccx, si deve avviare il comando vncss.

All'avvio del servente grafico viene richiesto di inserire una parola d'ordine, o di riutilizzare quella che si trova nel file ~/.vnc/passwd. La parola d'ordine è l'unico mezzo reale per controllare l'accesso al servente grafico e deve essere fornita anche a chi visualizza o partecipa al controllo.

Il pubblico potrebbe accedere al servente grafico remoto attraverso un servente X già in funzione; in tal caso, può utilizzare i comandi vncv e vncc, per avere la visualizzazione o il controllo attraverso una finestra.

Figura 617.7. Le varie alternative a disposizione, per la visualizzazione o il controllo di un servente X remoto, attraverso VNC.

vnccx, vncvx, vncc, vncv

Tabella 617.8. Riepilogo dei comandi.

Comando Descrizione
vncs
Si avvia da una console o da un terminale a caratteri per attivare un servente VNC, definendo una parola d'ordine.
vncss
Si avvia da una console o da un terminale a caratteri per attivare un servente VNC condivisibile, definendo una parola d'ordine.
vncv nodo
Si avvia da una finestra di terminale per vedere cosa avviene con il servente VNC in funzione presso il nodo indicato.
vncc nodo
Si avvia da una finestra di terminale per interagire con il servente VNC in funzione presso il nodo indicato.
vncvx nodo
Si avvia da una console per visualizzare il servente VNC in funzione presso il nodo indicato, avviando contestualmente anche il servente X, funzionando poi a tutto schermo. Per chiudere la connessione, senza interrompere il lavoro del servente VNC remoto, si deve usare la combinazione [Ctrl Alt Backspace].
vnccx nodo
Si avvia da una console per interagire con il servente VNC in funzione presso il nodo indicato, avviando contestualmente anche il servente X, funzionando poi a tutto schermo. Per chiudere la connessione, senza interrompere il lavoro del servente VNC remoto, si deve usare la combinazione [Ctrl Alt Backspace].

617.3   Utilizzo di un elaboratore locale

In questo caso si vuole riprodurre una situazione equivalente a quella della sezione precedente, dove però il servente grafico che si vuole condividere, si trova presso lo stesso elaboratore locale. L'avvio del servente grafico si ottiene con il comando vncsc, oppure vncssc; nel primo caso si può gestire il controllo soltanto da una postazione, offrendo agli altri la possibilità di visualizzare, mentre nel secondo si concede a tutti di controllare il servente.

Figura 617.9. Utilizzo di un servente X presso l'elaboratore locale.

vncsc, vncssc, vnccx e vncvx

Anche in questo caso, viene richiesto di inserire una parola d'ordine, o di riutilizzare quella che si trova nel file ~/.vnc/passwd. La parola d'ordine è sempre l'unico mezzo reale per controllare l'accesso al servente grafico e deve essere fornita anche a chi visualizza o partecipa al controllo.

Tabella 617.10. Riepilogo dei comandi.

Comando Descrizione
vncsc
Si avvia da una console per attivare un servente VNC, definendo una parola d'ordine, assieme al cliente VNC necessario a interagire con questo.
vncssc
Si avvia da una console per attivare un servente VNC condivisibile, definendo una parola d'ordine, assieme al cliente VNC necessario a interagire con questo.
vncv nodo
Si avvia da una finestra di terminale per vedere cosa avviene con il servente VNC in funzione presso il nodo indicato.
vncc nodo
Si avvia da una finestra di terminale per interagire con il servente VNC in funzione presso il nodo indicato.
vncvx nodo
Si avvia da una console per visualizzare il servente VNC in funzione presso il nodo indicato, avviando contestualmente anche il servente X, funzionando poi a tutto schermo. Per chiudere la connessione, senza interrompere il lavoro del servente VNC remoto, si deve usare la combinazione [Ctrl Alt Backspace].
vnccx nodo
Si avvia da una console per interagire con il servente VNC in funzione presso il nodo indicato, avviando contestualmente anche il servente X, funzionando poi a tutto schermo. Per chiudere la connessione, senza interrompere il lavoro del servente VNC remoto, si deve usare la combinazione [Ctrl Alt Backspace].

617.4   Utilizzo senza parola d'ordine

C'è la possibilità di usare VNC utilizzando una parola d'ordine predefinita, che così può semplificare il lavoro, almeno in una rete locale che dia garanzie sufficienti di isolamento. Per questo è possibile avviare un servente grafico locale, attraverso i comandi nosharedx, oppure sharedx. Nel secondo caso chiunque può controllare il servente con il comando takesharedx, mentre nel primo caso è concesso a un solo nodo.

Figura 617.11. Un insegnante che visualizza o controlla le stazioni grafiche degli studenti.

sharedx, viewsharedx, takesharedx

Nella 617.11 figura viene ipotizzata una situazione che ricorda il concetto di «laboratorio in rete» secondo l'idea degli anni 1990 nella scuola italiana. In questo caso, l'insegnante ha l'esigenza di visualizzare oppure anche di interagire con le stazioni grafiche degli studenti. Per fare questo, si chiede agli studenti di avviare la grafica con il comando nosharedx, oppure sharedx (al posto di startx), in modo che l'insegnante possa vedere ciò che accade con viewsharedx, oppure possa interferire con il lavoro degli studenti attraverso takesharedx.

Purtroppo, se gli studenti apprendono l'uso del comando takesharedx, la tentazione di fare uno scherzo ai compagni, attraverso il controllo della loro stazione grafica, diventa irresistibile. In quella situazione, l'insegnante si deve accontentare di visualizzare le stazioni grafiche, facendo avviare agli studenti la grafica attraverso nosharedx. In verità, anche così c'è la possibilità di fare qualche dispetto, ma diventa più complicato, perché lo studente malizioso dovrebbe essere in grado di usare direttamente xvncviewer, oppure dovrebbe modificare lo script per l'occasione; tuttavia, per farlo dovrebbe studiare la faccenda, cosa che tutto sommato potrebbe anche essere apprezzata dall'insegnante.

Figura 617.12. Un relatore mostra qualcosa al pubblico.

nosharedx, viewsharedx, viewremotex

Nella 617.12 figura si immagina che un relatore debba far vedere qualcosa al suo pubblico, senza dover fornire una parola d'ordine per questo. Pertanto, il relatore avvia il sistema grafico attraverso il comando nosharedx e fa accedere il pubblico attraverso il comando viewsharedx, oppure viewremotex, che è equivalente.

Tabella 617.13. Riepilogo dei comandi.

Comando Descrizione
nosharedx
Si avvia da una console, al posto di startx, per fare utilizzare la grafica a un insegnante, consentendo agli studenti di visualizzare ciò che avviene. Può essere usato naturalmente anche per fare l'opposto, quando l'insegnante vuole solo la possibilità di visualizzare le schermate, senza doverle anche controllare.
sharedx
Si avvia da una console, al posto di startx, per fare utilizzare la grafica agli studenti, consentendo a un insegnante di controllare ciò che avviene.
viewsharedx nodo...
viewremotex nodo...
Si avvia da una finestra di terminale, indicando una serie di nodi da cui si vuole visualizzare il funzionamento dei serventi VNC avviati lì attraverso lo script sharedx o nosharedx. Se si avvia da console è ammessa l'indicazione di un solo nodo remoto.
takesharedx nodo...
Si avvia da una finestra di terminale, indicando una serie di nodi presso i quali si vuole controllare il funzionamento dei serventi VNC avviati lì attraverso lo script sharedx. Se si avvia da console è ammessa l'indicazione di un solo nodo remoto.

617.5   Utilizzo di VNC attraverso un tunnel SECSH

I vari comandi vncv, vncc, vncvx e vnccx, hanno delle alternative, costituiti rispettivamente da: vncv-ssh, vncc-ssh, vncvx-ssh e vnccx-ssh. Nel secondo caso, il collegamento verso l'elaboratore remoto avviene tramite un tunnel cifrato SECSH (Secure Shell).

Si osservi che dal lato del servente VNC non si deve fare nulla di diverso e si utilizzano i comandi già descritti: vncs, vncsc, vncss o vncssc.

Figura 617.14. Accesso a un servente X presso un elaboratore remoto, utilizzando un tunnel SECSH.

tunnel cifrato

Il comportamento dei comandi vncv-ssh, vncc-ssh, vncvx-ssh e vnccx-ssh, è lo stesso di quelli a cui si abbinano (senza l'estensione -ssh), con la differenza che per la creazione del tunnel serve l'indicazione del nominativo utente per conto del quale deve essere realizzato, con la richiesta eventuale di una parola d'ordine):

.----SSH tunnel for VNC------.
| Please enter the user name |
| to access the remote VNC   |
| server at                  |
| 172.21.254.254:1.          |
| .------------------------. |
| |tizio                   | |
| `------------------------' |
|----------------------------|
|   <  OK  >  <Cancel>       |
`----------------------------'
.-------SSH tunnel---------.
| You are going to enter   |
| the password to access   |
| 172.21.254.254 with SSH. |
`--------------------------'

Password:

Evidentemente, se il tunnel non può essere instaurato, non può avvenire la connessione.

Al termine del collegamento, il tunnel viene eliminato; tuttavia, quando si tenta di avviare un altro collegamento, se esiste già un tunnel dello stesso tipo richiesto, si può tentare di riutilizzarlo:

.--------------------------------SSH tunnel----------------------------------.
| There is already a tunnel with port 5901:                                  |
|                                                                            |
| 19056 ?    Ss   0:00 ssh -N -f -L 5901:localhost:5901 tizio@172.21.254.254 |
|                                                                            |
| What should I do?                                                          |
| .------------------------------------------------------------------------. |
| |                  reuse    try to reuse the old tunnel                  | |
| |                  kill     try to kill the SSH process                  | |
| |                  abandon  don't do anything                            | |
| `------------------------------------------------------------------------' |
|                                                                            |
|----------------------------------------------------------------------------|
|                       <  OK  >            <Cancel>                         |
`----------------------------------------------------------------------------'

Tabella 617.18. Riepilogo dei comandi.

Comando Descrizione
vncv-ssh nodo
Si avvia da una finestra di terminale per vedere cosa avviene con il servente VNC in funzione presso il nodo indicato. Il collegamento viene inserito in un tunnel SECSH.
vncc-ssh nodo
Si avvia da una finestra di terminale per interagire con il servente VNC in funzione presso il nodo indicato. Il collegamento viene inserito in un tunnel SECSH.
vncvx-ssh nodo
Si avvia da una console per visualizzare il servente VNC in funzione presso il nodo indicato, avviando contestualmente anche il servente X, funzionando poi a tutto schermo. Per chiudere la connessione, senza interrompere il lavoro del servente VNC remoto, si deve usare la combinazione [Ctrl Alt Backspace]. Il collegamento viene inserito in un tunnel SECSH.
vnccx-ssh nodo
Si avvia da una console per interagire con il servente VNC in funzione presso il nodo indicato, avviando contestualmente anche il servente X, funzionando poi a tutto schermo. Per chiudere la connessione, senza interrompere il lavoro del servente VNC remoto, si deve usare la combinazione [Ctrl Alt Backspace]. Il collegamento viene inserito in un tunnel SECSH.

Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome nanolinux_vnc_con_171_vncrc_187.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]

Valid ISO-HTML!

CSS validator!