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:
Concetti generali sulle reti
Login in sistemi remoti
Copia di file da sistemi remoti
Esecuzione di comandi su sistemi remoti
Richiesta di informazioni di stato su sistemi remoti
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.
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.
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.
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:
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:
Effettuando il login in un sistema remoto con il nome di un altro utente, si accede alla directory home di quell'utente.
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 $ |
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:
Se si desidera tornare a una connessione intermedia stabilita con rlogin, digitare due caratteri tilde seguiti da un punto (~~.), come illustrato in questo esempio:
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).
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.
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.
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.
Per copiare una sottodirectory e il suo contenuto da un sistema a un altro, usare il comando rcp -r.
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 . $ |
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.
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.
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.