[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 100.   X: accesso remoto alla sessione di lavoro

Con un terminale a caratteri è possibile gestire una sessione di lavoro trasferibile successivamente in un altro terminale, attraverso il programma Screen (sezione 50.5); in modo simile, è possibile agire per quanto riguarda la sessione di lavoro con un servente X, attraverso VNC, (1) ovvero Virtual network computing.

È bene ricordare che X offre già la possibilità di eseguire un programma in un elaboratore, mostrandone le finestre nel servente di un altro (sezione 95.5). Diversamente da questa modalità comune di utilizzo di X, VNC consente di controllare tutto il servente grafico e il gestore di finestre (o anche il gestore di sessione) relativo. Inoltre, VNC consente anche un accesso simultaneo da parte di più terminali remoti, solitamente per permettere la visualizzazione di ciò che avviene.

VNC è uno strumento utile soprattutto nell'ambito di una rete locale protetta dall'esterno, dal momento che utilizza una comunicazione in chiaro e che l'accesso al servente è controllato semplicemente da una parola d'ordine.

100.1   Funzionamento di VNC in generale

VNC si compone essenzialmente di un programma servente, con le funzionalità grafiche di X, il quale non si collega a una stazione grafica e viene usato attraverso un programma cliente apposito. Questo servente comunica nel modo consueto, come un servente X normale (connessioni TCP alle porte 6 000+n) a cui si aggiunge la comunicazione necessaria al controllo attraverso il proprio cliente specifico, con le porte 5 900+n.

Figura 100.1. Comunicazione tra il servente e il cliente VNC.

.------------------.
|       Xvnc       | servente VNC
|                  |
| dinkel.brot.dg:1 |
`------------------'                                    cliente VNC
          | 192.168.1.1:5901                               .----------------.
          |                              192.168.1.2:12345 |   Xvncclient   |
          `------------------------------------------------|                |
                                                           | roggen.brot.dg |
                                                           `----------------'

La figura mostra una situazione comune, in cui un elaboratore ospita un servente VNC, dinkel.brot.dg, che offre la stazione grafica virtuale :1. In tal modo, la comunicazione con il servente avviene alla porta 5 901 (ovvero 5 900 più il numero corrispondente alla stazione grafica virtuale).

Nell'elaboratore che ospita il servente VNC, l'interazione con questo non risulta apparente, a meno di avviare nello stesso un cliente VNC.

Il cliente VNC, a sua volta, potrebbe essere autonomo, oppure richiedere un servente X normale per poter funzionare. Il programma mostrato in figura è un esempio di cliente che richiede X per poter funzionare.

Un servente VNC può essere utilizzato da un solo cliente, oppure può essere consentito un accesso simultaneo da parte di più clienti; in tal caso, probabilmente, uno solo servirà per interagire, mentre gli altri serviranno solo per osservare. Pertanto, le situazioni più comuni di utilizzo di un sistema grafico basato su VNC sono due: l'esigenza di mantenere in funzione una sessione di lavoro grafica, a cui poter accedere da un terminale remoto, sospendendo e riprendendo la connessione anche da altre posizioni; oppure l'esigenza di fare un lavoro che altri utenti possono visualizzare, senza bisogno di un proiettore.

L'accesso a un servente VNC è controllato esclusivamente attraverso il confronto di una parola d'ordine, definita in modo indipendente dal meccanismo di riconoscimento degli utenti del sistema operativo.

100.2   Avvio e conclusione del funzionamento del servente VNC in un sistema GNU

Il funzionamento del servente VNC dipende dalla configurazione del servente X: se X non funziona correttamente a causa di un difetto di configurazione, anche il servente VNC non può funzionare. Pertanto, di solito si avvia un servente VNC da una sessione X già attiva, probabilmente da una finestra di terminale:

vncserver [:n_stazione_grafica] [opzioni]

Il programma vncserver è in realtà un involucro per controllare l'avvio di Xvnc o di Xrealvnc (dipende dall'edizione), che è invece il vero servente VNC.

Generalmente, l'avvio del servente VNC avviene sulla stazione grafica :1, anche quando la stazione grafica :0 non risulta impegnata, salvo che sia indicato diversamente con le opzioni della riga di comando.

Quando un utente avvia per la prima volta un servente VNC nel modo descritto, questo crea la directory ~/.vnc/, in cui vengono annotate le informazioni sulle sessioni di lavoro relative, oltre a un file contenente una parola d'ordine cifrata, che servirà per consentire l'accesso successivo. In ogni caso, la prima volta provvede vncserver a preparare tutto; l'esempio seguente si riferisce all'utente tizio presso l'elaboratore dinkel.brot.dg:

vncserver[Invio]

You will require a password to access your desktops.

Password: digitazione_all'oscuro[Invio]

Verify: digitazione_all'oscuro[Invio]

New 'X' desktop is dinkel:1

Starting applications specified in /etc/X11/Xsession
Log file is /home/tizio/.vnc/dinkel:1.log

Come si può intendere, viene richiesta l'indicazione e la conferma di una parola d'ordine, che non può essere troppo breve, la quale viene conservata nel file ~/.vnc/passwd in forma cifrata. Quando l'utente dovesse avviare nuovamente un servente VNC, disponendo già di questo file, non verrebbe più chiesta la parola d'ordine, rimanendo la stessa già stabilita in precedenza.

Superata questa fase, viene avviato effettivamente il servente VNC. Nell'esempio risulta avviato sulla stazione grafica virtuale :1; pertanto, per poterlo raggiungere, si userà un indirizzo del tipo dinkel.brot.dg:1 (in generale conviene evitare la forma abbreviata che viene suggerita da vncserver).

Al termine, vncserver ricorda dove si può trovare il file in cui sono annotate le informazioni specifiche sull'avvio del servente VNC, che diventa molto utile quando questo non si avvia come si desidera, per scoprire l'origine del problema. In generale, questo file ha la forma: ~/.vnc/nodo:n_stazione_grafica.log.

Non sono da escludere problemi di configurazione di XFree86, che XFree86 stesso è in grado di superare, mentre il servente VNC non può.

Inizialmente, il contenuto di questo file può essere simile al testo seguente:


15/12/02 09:09:00 Xvnc version 3.3.5 - built Nov 22 2002 09:33:52
15/12/02 09:09:00 Copyright (C) 2002 RealVNC Ltd.
15/12/02 09:09:00 Copyright (C) 1994-2000 AT&T Laboratories Cambridge.
15/12/02 09:09:00 All Rights Reserved.
15/12/02 09:09:00 See http://www.realvnc.com for information on VNC
15/12/02 09:09:00 Desktop name 'X' (dinkel:1)
15/12/02 09:09:00 Protocol version supported 3.3
15/12/02 09:09:00 Listening for VNC connections on TCP port 5901

Eventualmente, se sono stati installati i componenti necessari di VNC, vncserver avvia il servente VNC in modo da offrire anche un accesso HTTP alla porta 5 800+n, per mezzo del quale, con un navigatore in grado di mettere in funzione programmi Java, è possibile accedere in mancanza di un programma cliente migliore. In tal caso, si può osservare questo fatto nello stesso file appena mostrato:


15/12/02 09:09:00 Listening for HTTP connections on TCP port 5801
15/12/02 09:09:00   URL http://dinkel:5801

In questo caso, l'indirizzo per accedere sarà preferibilmente http://dinkel.brot.dg:5801.

Se si vuole avviare il servente VNC senza avviare prima X, le cose si complicano un po'. Infatti, quando ciò è possibile, X determina da solo alcune informazioni sul funzionamento dell'adattatore grafico e sulle capacità dello schermo reale; pertanto, quando si avvia il servente VNC da una sessione di X già attiva, le stesse informazioni vengono utilizzate da VNC, mentre in mancanza di queste, il funzionamento di VNC dipenderebbe da parametri predefiniti, spesso non gradevoli. Per esempio, avviando un servente VNC senza l'appoggio di un servente XFree86 preesistente, si ottiene una stazione grafica impostata sostanzialmente per un adattatore grafico di tipo VGA standard (640x480 punti grafici e una profondità di colori modesta). L'esempio seguente mostra l'avvio di un servente VNC, attraverso vncserver, al di fuori di una sessione di lavoro con X, dove si specifica la dimensione della superficie grafica (1 024x768 punti grafici) e la profondità di colori (16 bit):

vncserver -depth 16 -geometry 1024x768

Per concludere il funzionamento del servente VNC, presso l'elaboratore locale, si può usare vncserver con l'opzione -kill:

vncserver -kill :n_stazione_grafica

Al termine della descrizione dell'avvio di un servente VNC, è bene chiarire che generalmente, quando accede un cliente VNC, se già esisteva un altro programma cliente collegato, generalmente questo (quello preesistente) termina di funzionare. In pratica, in condizioni normali, si suppone che l'utente che accede a un servente VNC sia l'unico autorizzato a farlo, pertanto, se è rimasta una sessione aperta, ciò è dovuto probabilmente a una dimenticanza dello stesso. Per consentire degli accessi simultanei al servente VNC, è necessaria l'opzione -alwaysshared, come descritto nella tabella seguente, che riepiloga alcune opzioni per l'avvio dell'involucro vncserver.

Tabella 100.1. Alcune opzioni della riga di comando di vncserver.

Opzione o argomento Descrizione

:n_stazione_grafica

Consente di indicare espressamente il numero di stazione grafica da utilizzare. In mancanza di questa informazione dovrebbe trattarsi di :1.

-geometry n_punti_larghezzaxn_punti_altezza

Definisce la dimensione della superficie grafica da utilizzare, in punti grafici.

-depth n_bit

Definisce la profondità di colori espressa in numero di bit.

-nevershared

 

-alwaysshared

Consente di impedire o consentire la condivisione multipla del servente. In pratica, la prima delle due opzioni è quella predefinita, per fare in modo che solo un accesso per volta sia permesso.

-kill :n_stazione_grafica

Conclude il funzionamento del servente, in funzione nell'elaboratore locale, controllando la stazione grafica indicata.

100.3   Avvio del servente VNC in condizioni difficili in un sistema GNU

L'impostazione effettiva di un servente X in una distribuzione GNU, può essere molto complessa. In altri termini, il funzionamento di xinit e di startx, non è perfettamente uniforme da una distribuzione all'altra, spesso per la necessità di arginare dei problemi di sicurezza. Pertanto, qualsiasi ne sia la ragione, può succedere che un servente VNC non si comporti come ci si aspetterebbe; si può arrivare anche a vedere funzionare il servente, ma senza un gestore di finestre o un gestore di sessione.

Di fronte a problemi di questo tipo, può essere più conveniente avviare direttamente il servente VNC senza l'aiuto dell'involucro vncserver, predisponendo uno script adatto alle proprie esigenze. Vengono mostrati qui due script: uno per controllare Xvnc, ovvero l'eseguibile del servente VNC, l'altro per controllare l'avvio di un gestore di finestre, chiamato all'interno del primo.

Come già accennato, il programma eseguibile del servente VNC può essere denomiato Xvnc, oppure Xrealvnc, a seconda dell'edizione. Tuttavia, nel secondo caso, è normale che sia disponibile almeno un collegamento simbolico che consenta l'uso del nome Xvnc.


#!/bin/sh
# vncs1024

# X fonts.
VNC_FONTS=\
/usr/X11R6/lib/X11/fonts/misc,\
/usr/X11R6/lib/X11/fonts/75dpi,\
/usr/X11R6/lib/X11/fonts/100dpi/,\
/usr/X11R6/lib/X11/fonts/Type1/,\
/usr/X11R6/lib/X11/fonts/Speedo/

# Quit old VNC servers and reset personal configuration.
killall Xvnc 2> /dev/null
killall Xrealvnc 2> /dev/null
rm -rf    ~/.vnc
mkdir     ~/.vnc
vncpasswd ~/.vnc/passwd

# Start VNC server at screen :1, using ~/.vnc/log for log file.
Xvnc :1 -auth ~/.Xauthority -geometry 1024x768 -depth 16 \
    -rfbwait 120000 -rfbauth ~/.vnc/passwd -rfbport 5901 \
    -fp $VNC_FONTS -co /etc/X11/rgb \
    -dpi 100 2> ~/.vnc/log &

# Start the window manager inside a wrap script.
# After window manager run, the VNC server should be killed, by
# the wrap script.
vncwm &


#!/bin/sh
# vncwm
xloadimage -display :1 -onroot -fullscreen ~/.wallpaper
fvwm -display :1  2> /dev/null ; killall Xvnc ; killall Xrealvnc

Il primo di questi due script, denominato qui vncs1024, definisce inizialmente una variabile di ambiente, contenente l'elenco delle directory dei caratteri di X (questa informazione può essere tratta eventualmente dal file di configurazione di XFree86: /etc/X11/XF86Config o /etc/X11/XF86Config-4). Successivamente elimina i processi avviati con il nome Xvnc, o Xrealvnc, ammesso che ce ne siano, poi elimina anche il contenuto della directory ~/.vnc/; quindi chiede di definire una parola d'ordine nuova, con l'aiuto di vncpasswd.

Quando tutto è pronto, si avvia l'eseguibile Xvnc, utilizzando la stazione grafica :1 (come fa normalmente vncserver), con un elenco piuttosto lungo di opzioni, come si può vedere dall'esempio. In particolare, in questo caso, si specifica una dimensione della superficie grafica di 1 024x768 punti grafici, inviando il flusso dello standard error nel file ~/.vnc/log, per poter sapere ciò che accade. Si osservi inoltre che Xvnc viene avviato sullo sfondo in modo esplicito.

Infine si avvia uno script vncwm, il cui scopo è quello di avviare un gestore di finestre e di chiudere il funzionamento di Xvnc o di Xrealvnc al termine del funzionamento di questo. Infatti, come si vede, lo script carica un fondale e avvia Fvwm: al termine del funzionamento di Fvwm elimina tutti i processi con il nome Xvnc e con il nome Xrealvnc.

Naturalmente, in questo modo si può avviare un solo servente VNC alla volta.

Da quanto visto si intuisce la sintassi per l'avvio dell'eseguibile Xvnc:

Xvnc [:n_stazione_grafica] [opzioni]

Segue la descrizione di alcune opzioni della riga di comando.

Tabella 100.2. Alcune opzioni della riga di comando di Xvnc.

Opzione o argomento Descrizione

:n_stazione_grafica

Consente di indicare espressamente il numero di stazione grafica da utilizzare. In mancanza di questa informazione si tenta di usare :0.

-auth file

Definisce il nome del file usato per l'autenticazione di X.

-geometry n_punti_larghezzaxn_punti_altezza

Definisce la dimensione della superficie grafica da utilizzare, in punti grafici.

-depth n_bit

Definisce la profondità di colori espressa in numero di bit.

-nevershared

 

-alwaysshared

Consente di impedire o consentire la condivisione multipla del servente. In pratica, la prima delle due opzioni è quella predefinita, per fare in modo che solo un accesso per volta sia permesso.

-rfbwait n_millisecondi

Definisce il tempo massimo di attesa, in millisecondi, per un cliente VNC.

-rfbauth file

Definisce il file contenente la parola d'ordine cifrata che serve per consentire l'accesso.

-rfbport n_porta

Definisce il numero della porta usata per la comunicazione con i clienti VNC.

-fp stringa

Definisce l'elenco dei percorsi delle directory contenenti informazioni sui caratteri tipografici da usare.

-co file

Definisce il file contenente le informazioni sui colori, senza l'estensione .txt. Generalmente si ricopia il percorso indicato nella direttiva RgbPath del file /etc/X11/XF86Config[-4].

-dpi n_punti

Definisce la risoluzione in punti per pollice.

100.4   Configurazione e utilizzo dei caratteri tipografici

Non esiste una configurazione vera e propria del servente VNC; esiste piuttosto una configurazione di vncserver, che di solito si lascia commentata completamente. In ogni caso, si tratta del file /etc/vnc.conf ed eventualmente di ~/.vncrc.

L'utilizzo di questi file diventa utile, quindi, solo se si avvia il servente VNC attraverso vncserver e si sono manifestati dei problemi a cui si pone rimedio solo con la configurazione.

Una situazione in cui è necessario intervenire nella configurazione è la presenza di direttive FontPath nel file /etc/X11/XF86Config[-4], che fanno riferimento a caratteri tipografici non esistenti; per esempio quando queste informazioni sono fornite da un servente di caratteri che in quel momento non risulta rispondere. In tal caso, si può specificare nella configurazione quali percorsi sono sicuri, tralasciando il superfluo.

100.5   Accesso a un servente VNC

Si può accedere a un servente VNC con diversi programmi, ma in un sistema GNU dovrebbe essere preferibile farlo attraverso xvncviewer. Come lascia intuire il nome, si tratta di un programma che richiede l'uso di un servente X già attivo, che mostra poi la stazione grafica remota in una finestra di quella locale.

Di solito è necessario avviare xvncviewer da una finestra di terminale, per poter specificare a quale nodo e a quale stazione grafica collegarsi. Si utilizza la sintassi seguente:

xvncviewer [opzioni] nodo:n_stazione_grafica

Se nella riga di comando non viene specificata l'opzione -passwd (con la quale si indica un file contenente una parola d'ordine cifrata), è necessario inserire la parola d'ordine per l'accesso al servente VNC:

xvncviewer dinkel.brot.dg:1[Invio]

VNC viewer version 3.3.5 - built Nov 22 2002 09:31:25
Copyright (C) 2002 RealVNC Ltd.
Copyright (C) 1994-2000 AT&T Laboratories Cambridge.
See http://www.realvnc.com for information on VNC.
VNC server supports protocol version 3.3 (viewer 3.3)

Password: digitazione_all'oscuro[Invio]

Successivamente vengono visualizzate altre informazioni, quindi appare la finestra relativa alla comunicazione con il servente VNC.

Se quello che si vede è solo uno sfondo grigio, senza applicazioni attive, dove premendo i tasti del mouse non si ottiene nulla, è probabile che il servente VNC sia stato avviato senza un gestore di finestre o un gestore di sessione.

Quando si vuole visualizzare semplicemente ciò che accade in un servente VNC, senza poter interferire, mentre un altro cliente VNC sta interagendo, si può usare l'opzione -viewonly, assieme a -shared. Eventualmente, dalla parte del servente si può usare l'opzione -alwaysshared per garantire che sia consentito l'accesso simultaneo da parte di più clienti (questa opzione vale sia per l'avvio diretto di Xvnc, sia per l'involucro vncserver):

xvncviewer -viewonly dinkel.brot.dg:1[Invio]

Segue la descrizione di alcune opzioni.

Tabella 100.3. Alcune opzioni della riga di comando di xvncviewer.

Opzione o argomento Descrizione

nodo:n_stazione_grafica

Consente di indicare il nodo e il numero di stazione grafica da utilizzare.

-shared

Richiede una connessione a un servente VNC, consentendo esplicitamente la condivisione dello stesso con altri clienti.

-viewonly

Richiede una connessione a un servente VNC per la sola visualizzazione di ciò che accade. Di solito si usa assieme all'opzione -shared.

-fullscreen

Fa in modo di funzionare occupando tutta la superficie disponibile, senza il contorno di una finestra.

-passwd file

Consente di specificare un file contenente una parola d'ordine cifrata, che dovrebbe corrispondere a quanto utilizzato dallo stesso servente, in modo da non richiedere all'utente l'inserimento della stessa.

100.6   Utilizzo comune di VNC

La situazione in cui è più comune l'utilizzo di VNC è quella dell'utente che si trova lontano dal proprio elaboratore, al quale può comunque accedere attraverso la rete. In generale, in questo elaboratore remoto non è già in funzione alcun servente VNC, pertanto conviene avviare X nell'elaboratore di cui si dispone temporaneamente; quindi, da lì, con una finestra di terminale, si può contattare l'elaboratore remoto e avviare il servente VNC. Se tutto funziona correttamente, il servente VNC viene avviato con caratteristiche compatibili alla grafica di cui si dispone effettivamente; quindi ci si può collegare con un cliente VNC.

elaboratore_localessh tizio@dinkel.brot.dg

In questo modo ci si collega all'elaboratore dinkel.brot.dg utilizzando l'utenza tizio. Successivamente si avvia il servente VNC presso l'elaboratore remoto:

elaboratore_remotovncserver

Quindi, se tutto ha funzionato correttamente ci si collega con un cliente VNC:

elaboratore_remotoexit

elaboratore_localexvncviewer dinkel.brot.dg:1

100.7   VNC attraverso un tunnel cifrato con il protocollo SECSH

Attraverso Secure Shell (capitolo 202) è possibile creare un tunnel cifrato, per utilizzare con più tranquillità l'accesso a un servente VNC. Viene riproposto l'esempio di utilizzo comune, utilizzando un tunnel del genere:

elaboratore_localessh tizio@dinkel.brot.dg

In questo modo ci si collega all'elaboratore dinkel.brot.dg utilizzando l'utenza tizio. Successivamente si avvia il servente VNC presso l'elaboratore remoto:

elaboratore_remotovncserver

A questo punto, dall'elaboratore locale ci si collega nuovamente con l'elaboratore remoto per creare un tunnel cifrato:

elaboratore_remotoexit

elaboratore_localessh -N -L 5901:dinkel.brot.dg:5901

A questo punto, invece di contattare direttamente l'elaboratore remoto dinkel.brot.dg, sarà invece sufficiente collegarsi a quello locale; prima però, conviene mettere il programma ssh sullo sfondo:

[Ctrl+z]

elaboratore_localebg

elaboratore_localexvncviewer localhost:1

100.8   Inserire VNC automaticamente all'avvio di X

È possibile realizzare uno script con cui si avvia un servente VNC e subito dopo X con un cliente VNC, a tutto schermo, che punta esattamente al servente locale, senza interferire con l'utente. Questo tipo di tecnica può servire in un laboratorio didattico in due casi: quando l'insegnante vuole avviare una sessione di lavoro grafica, pronta subito perché gli studenti vi si possano collegare, evitando così di utilizzare una lavagna luminosa; quando si vuole si vuole fare avviare agli studenti la sessione di lavoro grafica in modo che l'insegnante abbia la possibilità di intervenire sul loro lavoro, senza doversi spostare fisicamente dalla sua postazione.


#!/bin/sh
# vncsc1024

# X fonts.
VNC_FONTS=\
/usr/X11R6/lib/X11/fonts/misc,\
/usr/X11R6/lib/X11/fonts/75dpi,\
/usr/X11R6/lib/X11/fonts/100dpi/,\
/usr/X11R6/lib/X11/fonts/Type1/,\
/usr/X11R6/lib/X11/fonts/Speedo/

# Quit old VNC servers and reset personal configuration.
killall Xvnc 2> /dev/null
killall Xrealvnc 2> /dev/null
rm -rf    ~/.vnc
mkdir     ~/.vnc
vncpasswd ~/.vnc/passwd

# Start VNC server at screen :1, using ~/.vnc/log for log file.
Xvnc :1 -auth ~/.Xauthority -geometry 1024x768 -depth 16 \
    -rfbwait 120000 -rfbauth ~/.vnc/passwd -rfbport 5901 \
    -fp $VNC_FONTS -co /etc/X11/rgb \
    -alwaysshared nologo -dpi 100 2> ~/.vnc/log &

# Start the window manager inside a wrap script.
# After window manager run, the VNC server should be killed, by
# the wrap script.
vncwm &

# Start xinit with xvncviewer as a client
xinit /usr/bin/xvncviewer -fullscreen -passwd ~/.vnc/passwd localhost:1

Come si può osservare, questo esempio è molto simile a quanto già visto in una sezione precedente, dove la novità sta nell'avviare, dopo lo script vncwm, xinit specificando l'avvio di xvncviewer al posto del solito gestore di finestre. Naturalmente, lo script vncwm rimane tale e quale a prima:


#!/bin/sh
# vncwm
xloadimage -display :1 -onroot -fullscreen ~/.wallpaper
fvwm -display :1  2> /dev/null ; killall Xvnc ; killall Xrealvnc

Come si può intuire, lo script che qui è stato chiamato vncsc1024 è adatto per l'insegnante (o il relatore) che vuole consentire l'accesso ai suoi studenti, a cui dovrà comunicare anche la parola d'ordine per accedere, che come si vede viene sostituita ogni volta. Diversamente, se si vuole realizzare uno script da fare usare agli studenti al posto del solito startx, si deve fare in modo che il file della parola d'ordine sia già stato preparato e sia «standard»; l'estratto seguente mostra solo le istruzioni salienti da modificare:


# Quit old VNC servers and reset personal configuration.
killall Xvnc 2> /dev/null
killall Xrealvnc 2> /dev/null
rm -rf    ~/.vnc
mkdir     ~/.vnc
cp /etc/vnc/sharedx.passwd ~/.vnc/passwd
chmod 0600 ~/.vnc/passwd

100.9   Riferimenti

Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini -- daniele @ swlibero.org

1) VNC   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome x_accesso_remoto_alla_sessione_di_lavoro.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]