Guida avanzata a Solaris

Capitolo 9 Operazioni in rete

Operazioni in rete

Si definisce rete un insieme di computer configurati in modo da comunicare tra loro. All'interno di una rete è possibile utilizzare le risorse di altri sistemi operando normalmente sul proprio. È cioè possibile, operando sulla propria workstation, effettuare il login o eseguire comandi remoti che abbiano effetto su altri sistemi.

Questo capitolo tratta i seguenti argomenti:

Se il proprio sistema non è collegato a una rete, le informazioni contenute in questo capitolo potranno ugualmente essere utili per considerare e valutare i vantaggi del lavoro in rete.

Concetti generali sulle reti

Un collegamento in rete permette la trasmissione dei dati da un sistema ad un altro. Le reti vengono di norma classificate come LAN (local area network o reti locali), operanti su distanze nell'ordine di centinaia di metri; WAN (wide area network), operanti su distanze fino a migliaia di chilometri; o CAN (campus area network), operanti su distanze intermedie.

A un livello superiore si collocano le cosiddette internetwork, reti formate da gruppi di reti collegate. Ad esempio, una workstation può essere collegata a una rete installata all'interno dell'edificio e allo stesso tempo a una internetwork che collega la rete locale ad altre LAN simili in altre città. Poiché la differenza tra rete e internetwork non ha effetti rilevanti per l'utente, in questo manuale il termine "rete" verrà utilizzato per indicare indifferentemente entrambi i tipi di collegamento.

I sistemi collegati in rete comunicano tramite un protocollo di rete, o linguaggio comune della rete, per garantire che le informazioni vengano trasmesse alle destinazioni appropriate. Per il collegamento tra le reti si utilizzano invece i protocolli di internetwork, detti anche relay.

Login remoto (rlogin)

Il comando rlogin permette di effettuare il login su altri sistemi UNIX della propria rete.

Per effettuare il login su un sistema remoto, digitare:

$ rlogin nomesistema

dove nomesistema è il nome del sistema remoto.

Se compare la richiesta di una password, digitare la password per il sistema remoto e premere Return. Se il nome del proprio sistema è contenuto nel file /etc/hosts.equiv del sistema remoto, quest'ultimo non richiederà la password di accesso.

$ rlogin solitario
Password: (digitare la password)
Last login: Mon Jan 6 09:37:55 from zoo
Sun Microsystems, Inc.   SunOS 5.1      October 1992
(I comandi seguenti vengono eseguiti su solitario.)
$ pwd
/home/aquila
$ logout
Connection closed.
$

rlogin senza una directory home

Nell'esempio precedente, l'utente aquila ha effettuato il login in solitario nella directory /home/aquila, come indicato dal comando pwd. Se si effettua il login in un sistema in cui non si dispone di una propria directory home, rlogin visualizza un messaggio indicante l'assenza di tale directory home nel sistema remoto; in questo caso, l'utente accede direttamente alla directory radice (/) del sistema remoto:

$ rlogin fattoria
Password:
No directory! Logging in with home=/
Last login: Fri Jan 3 10:21:59 from zoo
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(I comandi seguenti vengono eseguiti su fattoria.)
$ pwd
/
$ logout
Connection closed.
$

rlogin con un altro nome utente

In alcuni casi può essere necessario effettuare il login in un sistema remoto nelle vesti di un altro utente. Ad esempio, può accadere di lavorare sul sistema di un altro utente (con il nome di login di questo utente) e di dover accedere al proprio sistema con il proprio nome utente. Questo è possibile con l'opzione -l del comando rlogin. La sintassi del comando è la seguente:

rlogin nomesistema -l nomeutente

Nell'esempio seguente l'utente aquila, operando dal sistema zoo, effettua il login nel sistema solitario come utente lupo:

$ rlogin solitario -l lupo
Password:
Last login: Wed Jan 8 07:12:25 from zoo
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(I comandi seguenti vengono eseguiti su solitario.)
$ pwd
/home/lupo
$ logout
Connection closed.
$

Effettuando il login in un sistema remoto con il nome di un altro utente, si accede alla directory home di quell'utente.

rlogin in un sistema sconosciuto

Se si cerca di effettuare il login in un sistema remoto il cui nome non è definito nel proprio sistema, rlogin cerca senza successo il nome del sistema nel database degli host e visualizza il messaggio seguente:

$ rlogin straniero
straniero: unknown host
$

Chiusura di una connessione stabilita con rlogin

Per terminare una connessione stabilita con rlogin, si utilizza di norma il comando logout alla fine della sessione di lavoro. Se per qualche ragione non fosse possibile terminare la sessione in questo modo, la connessione può essere interrotta digitando un tilde seguito da un punto (~.) all'inizio di una riga. La connessione con il sistema remoto viene interrotta e l'utente ritorna nel sistema di partenza.

Se si effettua il login in una serie di sistemi accedendo ad ognuno attraverso un altro sistema, e si utilizza quindi ~. per interrompere la connessione con uno qualsiasi di questi sistemi, si ritorna al sistema di partenza:

$ rlogin dakota
Password:
Last login: Fri Jan 10 09:14:43 from zoo
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(I comandi seguenti vengono eseguiti su dakota.)
$ ~.  (È possibile che il carattere ~ non appaia
sullo schermo.)
Connection closed.
$

Se si desidera tornare a una connessione intermedia stabilita con rlogin, digitare due caratteri tilde seguiti da un punto (~~.), come illustrato in questo esempio:

$ rlogin solitario
Password:
Last login: Tue Jan 7 08:12:49 from zoo
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(I comandi seguenti vengono eseguiti su solitario.)
$ rlogin dakota
Password:
Last login: Tue Jan 7 10:17:40 from solitario
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(I comandi seguenti vengono eseguiti su dakota.)
$ ~~.  (È possibile che i caratteri ~~ non appaiano
sullo schermo.)
Connection closed.
$

Sospensione di una connessione stabilita con rlogin

Per sospendere temporaneamente una connessione stabilita con rlogin, digitare un tilde (~) e quindi premere Ctrl-Z. La connessione stabilita con rlogin assume lo stato di processo sospeso e l'utente ritorna al sistema di partenza.

Per riattivare la connessione, digitare fg. Oppure, digitare il simbolo di percentuale (%) seguito dal numero del processo sospeso (se non viene specificato alcun numero di processo, viene considerato per default il numero dell'ultimo processo sospeso).

$ rlogin solitario
Password:
Last login: Tue Jan 7 08:12:49 from zoo
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(Il comando seguente viene eseguito su solitario.)
 ~^Z  (È possibile che ^Z non compaia sullo
schermo.)
Stopped
(Il comando seguente viene eseguito su zoo.)
$ pwd
/home/aquila
$ %
rlogin solitario

(Il comando seguente viene eseguito su solitario.)
$ logout
Connection closed.
$

Analogamente alla chiusura della connessione rlogin con ~~., digitando due caratteri tilde e Ctrl-Z la connessione rlogin corrente viene interrotta e l'utente torna a un rlogin intermedio.

Verifica della posizione corrente (who am i)

Dopo avere effettuato una serie di login in sistemi remoti e avere utilizzato vari nomi di login, può essere utile verificare l'esatta posizione corrente. Il comando who am i visualizza il nome del sistema corrente e il proprio nome di login corrente.

Per maggiori informazioni, digitare man rlogin al prompt di sistema o consultare la guida man Pages(1): User Commands.

Copia remota dei file (rcp)

Il comando rcp permette di copiare uno o più file da un sistema a un altro. Esso utilizza i file /etc/hosts.equiv e /etc/passwd del sistema remoto per determinare i privilegi di accesso dell'utente. La sintassi di rcp è analoga a quella del comando cp.


Nota -

Per copiare una sottodirectory e il suo contenuto da un sistema a un altro, usare il comando rcp -r.


Copia di file da un altro sistema al proprio

Per copiare uno o più file da un altro sistema sul proprio, la sintassi del comando è la seguente:

rcp nomesistema:sorgente destinazione

dove nomesistema è il nome del sistema remoto, sorgente è il nome del file che si desidera copiare e destinazione è il percorso in cui si desidera copiare il file sul proprio sistema.

Nell'esempio seguente, il file /home/dakota/doc/lettera viene copiato dal sistema remoto dakota alla directory /tmp del sistema locale zoo:

$ rcp dakota:/home/dakota/doc/lettera /tmp
$

Con il comando rcp è anche possibile utilizzare varie combinazioni di abbreviazioni e sintassi. Ad esempio, per copiare tutti i file che terminano in .doc dalla directory home dell'utente gallo sul sistema remoto fattoria alla directory corrente del sistema locale zoo, il comando da digitare sarà:

$ rcp fattoria:~gallo/*.doc .
$

Copia di file dal proprio sistema ad un altro

Per copiare uno o più file dal proprio sistema locale in un sistema remoto, la sintassi del comando viene invertita come segue:

rcp sorgente nomesistema:destinazione

dove sorgente è il file che si desidera copiare, nomesistema è il nome del sistema remoto e destinazione è il percorso in cui si desidera copiare il file nel sistema remoto.

Nell'esempio seguente, il file asti viene copiato dalla directory ~/italia/piemonte del sistema di partenza nella directory ~gallo/province del sistema remoto fattoria (si ricordi che ~ indica la directory home dell'utente che esegue il comando e ~gallo è la directory home dell'utente gallo):

$ rcp ~/italia/piemonte/asti fattoria:~gallo/province
$

Per maggiori informazioni sul comando rcp(1) e sulle relative opzioni, vedere la guida man Pages(1): User Commands.

Esecuzione remota dei comandi (rsh)

Il comando rsh (da remote shell) permette di eseguire un comando singolo su un sistema remoto senza bisogno di effettuare il login su quel sistema. Questa possibilità può risultare molto utile quando si desidera effettuare una sola operazione sul sistema remoto.

Per eseguire un comando sul sistema remoto, digitare:

rsh nomesistema comando

Nell'esempio seguente viene visualizzato il contenuto della directory /home/solitario/chitarre del sistema remoto solitario:

$ rsh solitario ls /home/solitario/chitarre
collings         gibson          santacruz
fender           martin          taylor
$ 

Come i comandi rlogin e rcp, rsh utilizza i file /etc/hosts.equiv e /etc/passwd del sistema remoto per determinare i privilegi di accesso dell'utente.

Per maggiori informazioni sul comando rsh(1) e sulle relative opzioni, vedere la guida man Pages(1): User Commands.

Visualizzazione di informazioni sugli utenti (rusers)

Il comando rusers (da remote users) visualizza gli utenti connessi ai vari sistemi della rete. Digitando il comando rusers da solo vengono visualizzati tutti i sistemi della rete e gli utenti connessi in ciascuno:

$ rusers
bosco          quercia
dakota         sandra
fattoria       gallo
firenze        linda     paola     bruno
foresta        sequoia
pianeti        marte
solitario      lupo
zoo            leone
$

Si noti che il sistema firenze ha tre utenti connessi.

Per visualizzare le informazioni relative a uno specifico sistema remoto, digitare il comando rusers seguito dal nome del sistema, come segue:

$ rusers firenze
firenze        linda     paola     bruno
$

L'opzione -l del comando rusers permette di ottenere informazioni più dettagliate, tra cui i nomi degli utenti, i nomi dei sistemi e dei terminali, l'ora di connessione di ogni utente, il tempo di inattività di ogni utente (se maggiore di un minuto) e il nome del sistema da cui ogni utente ha effettuato il login:

$ rusers -l firenze
linda         firenze:ttyd8     Feb 10 08:12     5:29
paola         firenze:console   Feb 10 09:16
bruno         firenze:ttyp0     Feb 10 11:56       36
$

L'opzione -l può essere utilizzata anche senza specificare il nome di un sistema.

Per maggiori informazioni sul comando rusers(1) e sulle relative opzioni, vedere la guida man Pages(1): User Commands.