17. Comunicare con il mondo Windows

Prima o poi vi capiterà di dover scambiare dati con computer che non usano Linux. Anzi, in questo momento è assai probabile che la vostra esigenza più pressante sia scambiare dati fra Linux e Windows sul vostro stesso computer.

In questo capitolo farete conoscenza con i più importanti metodi per trasferire file da un ambiente Linux a uno Windows e viceversa, sullo stesso computer o su computer diversi, collegati in vari modi (ad esempio via Internet oppure in rete locale).

Scoprirete, però, che trasferire dati da Windows a Linux a volte non è sufficiente. Alla fine, nonostante l'enorme serbatoio di programmi per Linux disponibili in Rete e commercialmente, quasi sicuramente incapperete in qualche applicazione che semplicemente non esiste sotto Linux e che dovete assolutamente usare. Penso in particolare a vecchi programmi che non riuscite a sostituire (o che non volete sostituire perché funzionano benissimo) e a prodotti come giochi, enciclopedie su CD-ROM e programmi per pilotare telefonini o organizer che funzionano soltanto sotto Windows o addirittura sotto DOS.

In casi come questi, bisogna ricorrere all'emulazione. Questo significa, in pratica, creare all'interno di Linux un'area in cui Linux si comporta come se fosse Windows o DOS. I programmi per Windows o DOS girano all'interno di quest'area, convintissimi di essere in esecuzione sotto il loro sistema operativo nativo.

Queste, a grandi linee, sono le strategie per mettere in comunicazione il mondo Windows e il mondo Linux. Ma cominciamo dalle cose semplici.

Il cavallo di san Francesco: floppy e affini

Può sembrarvi un approccio un po' rozzo e antiquato, ma ci sono molti casi in cui un dischetto è ancora la soluzione più spiccia al problema di passare file da una macchina Linux a un computer Windows e viceversa. Con le dimensioni elefantiache dei file che circolano oggigiorno, la praticità di questo approccio non è garantita, ma se vi serve spostare piccoli file e non volete disperarvi con la configurazione di Linux, il floppy è la soluzione che fa per voi.

La prima cosa che vi serve è appunto un dischetto. Il dischetto deve essere già stato formattato da un computer sul quale gira Windows (o DOS): in questo modo, quando Linux vi scrive sopra, usa il formato DOS e quindi produce un dischetto che potete leggere direttamente infilandolo in un computer Windows.

Da Linux a Windows

Da Windows a Linux

Trasferire file da un computer Windows a un computer Linux è molto più semplice. Sotto Windows, salvate il file sul dischetto. Poi infilate il dischetto nel computer Linux e cliccate sull'icona del floppy. Compare una finestra di kfm che elenca il contenuto del floppy: non vi resta che copiarlo alla sua destinazione nell'area Linux.

Ovviamente non è indispensabile che questo procedimento coinvolga due computer: potreste anche usarlo per trasferire file dalla partizione Windows a quella Linux e viceversa sullo stesso computer, ma questo comporterebbe chiudere un sistema operativo e avviare l'altro; quindi è il caso di usare questo sistema soltanto in emergenza e occasionalmente.

Per chi ha fretta

Se usare una riga di comando al posto di un'interfaccia grafica non vi manda in crisi, ci sono metodi molto più rapidi per trasferire file tramite dischetto fra Windows e Linux e viceversa.

Per trasferire file da Windows a Linux, copiateli sotto Windows a un dischetto (sempre formattato DOS) e poi inserite il dischetto nel drive della macchina Linux. Aprite una console o una finestra di terminale e poi digitate:

  • mount /mnt/floppy per montare il dischetto DOS e farlo vedere a Linux;

  • cp /mnt/floppy/nomefile /destinazione per copiare il file dal dischetto, dove nomefile sta a indicare il nome del file da copiare e destinazione è la directory o sottodirectory di destinazione a cui va copiato il file;

  • umount /mnt/floppy per smontare il dischetto e non farlo più vedere a Linux.

Per effettuare un trasferimento in senso inverso (cioè da Linux a Windows), digitate:

  • mount /mnt/floppy per montare il dischetto DOS e farlo vedere a Linux;

  • cp nomefile /mnt/floppy per copiare il file al dischetto (al posto di nomefile, ovviamente, ci va il nome del file e il suo percorso, se il file non risiede nella directory corrente);

  • umount /mnt/floppy per smontare il dischetto e non farlo più vedere a Linux.

In alternativa, se siete pratici del DOS, potete usare gli mtools (comandi Linux che imitano quelli DOS) descritti nel Capitolo 12 (Gli incantesimi di base) per trasferire file ancora più velocemente:

  • Da Windows a Linux: copiate il file al dischetto, poi infilate il dischetto nel drive della macchina Linux e digitate mcopy a:nomefile destinazioneNon occorre dare il comando mount o umount.

  • Da Linux a Windows: infilate il dischetto nel drive della macchina Linux e poi digitate mcopy /percorso/nomefile a: (dove nomefile è il nome del file da copiare e percorso è il suo percorso sotto Linux). Poi infilate lo stesso dischetto nella macchina Windows e usate Windows per copiare il file dal dischetto alla macchina Windows. Anche in questo caso non occorre dare il comando mount o umount.

L'unico vero problema dello scambio di file tramite floppy è il limite di capienza del dischetto. Oggigiorno 1,44 megabyte sono poca cosa se dovete trasferire un programma: StarOffice, ad esempio, occuperebbe più di cinquanta dischetti, e andrebbe prima spezzettato con appositi programmi e poi ricomposto a destinazione.

Tuttavia i floppy non sono l'unico supporto rimovibile in circolazione. Le considerazioni fatte per i dischetti valgono anche per i dischi ZIP Iomega e persino per i CD-ROM. Linux è in grado di leggere dischi ZIP preparati da macchine Windows, e per i CD-ROM il problema non si pone perché questi supporti sono “formattati” in un formato che non è né quello di Windows né quello di Linux ma che tutti i sistemi operativi riconoscono direttamente.

Se dovete trasferire grandi quantità di dati, quindi, potete benissimo masterizzare un CD-ROM (magari un riscrivibile, così lo riutilizzate) su uno dei due computer e infilarlo nell'altro per leggerlo.

Scambio di file via Internet

Anche il sistema che vi descrivo adesso vi sembrerà probabilmente un po' assurdo di primo acchito, ma in realtà è perfettamente praticabile. Uno dei metodi più semplici per trasferire file da una macchina Windows a una macchina Linux o viceversa è spedire i file come allegati a un e-mail. Chiaramente non è adatto a tutte le circostanze, ma è una possibilità in più che può risolvere parecchi problemi.

Non ridete! A prima vista usare Internet per passare file da una macchina all'altra sembra aver senso quanto spedire un pacco postale al vicino di casa invece di portarglielo a mano, ma siamo in informatica, e l'informatica non sempre ragiona negli stessi termini del mondo reale.

I vantaggi principali di questo metodo rispetto a qualsiasi altro sono tre:

L'unica limitazione, che peraltro vale per qualsiasi scambio di file fra computer diversi, è il formato dei file. Ad esempio, se mandate un file Word a un utente iMac, lo riceverà senza alcun problema, ma non lo potrà aprire e manipolare a meno che abbia un programma compatibile con il formato Word. Questo problema, fra l'altro, si pone anche fra utenti Windows.

Chiaramente questo metodo non è la cura per tutti i mali, altrimenti questo capitolo finirebbe qui. I suoi benefici diminuiscono man mano che diminuisce la distanza fra i due computer e man mano che aumenta la dimensione dei file. È senz'altro comodo per spedire qualche centinaio di kilobyte, ma è evidente che usare l'e-mail per passare file da un computer all'altro nella stessa stanza, o addirittura fra la partizione Windows e quella Linux del medesimo computer, è demenziale.

Allo stesso modo, spedire via e-mail un centinaia di megabyte di file su una connessione a Internet via modem richiederebbe troppo tempo. Tuttavia, se il computer destinatario dista diversi chilometri dal vostro, vale la pena di usare questo sistema anche per file piuttosto grandi (dell'ordine dei 10 megabyte), perché il tempo che ci mettereste a trasportare manualmente i file da un luogo all'altro è senz'altro maggiore del tempo necessario a trasmetterli anche su una normale linea telefonica.

C'è un'altra considerazione da fare a proposito dello scambio di file via e-mail, e ha a che fare con la sicurezza. Innanzi tutto, se spedite un documento come allegato a un e-mail, è molto facile intercettarlo: se si tratta di scambiare documenti riservati, usate un buon sistema di crittografia. In secondo luogo, gli allegati sono notoriamente uno dei veicoli di infezione preferiti dai virus informatici, per cui è indispensabile eseguire un controllo antivirus (con un programma antivirus aggiornato) su ogni singolo file allegato che ricevete, qualunque ne sia la fonte.

Vedere la partizione Windows

Se tutto quello che volete fare è scambiare dati fra la partizione Windows e quella Linux (e viceversa) di un medesimo computer mentre lavorate con Linux, la soluzione più efficace è configurare Linux in modo che “veda” la partizione Windows.

Linux è perfettamente in grado di leggere e scrivere secondo la formattazione usata da DOS e Windows, per cui una volta che gli avete detto “guarda, qui c'è una partizione Windows, usala pure”, il gioco è fatto: potete trasferire file da una partizione all'altra, cancellarli, rinominarli e modificarli a vostro piacimento come se si trattasse di normali file presenti nella partizione Linux.

Anzi, Linux vede la partizione Windows come se fosse una comunissima directory di Linux, per cui potete addirittura lavorare sui file della partizione Windows lasciandoli dove sono, cioè senza doverli copiare alla partizione Linux prima di poterli manipolare.

Interessati? Allora seguitemi. Far vedere a Linux una partizione formattata da Windows richiede due passi:

Ad esempio, potete definire una nuova directory nella struttura di directory di Linux e chiamarla win (o un altro nome qualsiasi); con opportuni comandi, Linux associa questa directory alla partizione Windows. Grazie a quest'associazione, aprendo la directory win di Linux vedrete elencato il contenuto della partizione Windows, a partire dalla directory principale.

Questa è la teoria. Ma in pratica, come si fa? Eccovi le istruzioni. C'è un modo spiccio e temporaneo e uno più complicato ma permanente. Comincio con quello spiccio.

Se invece volete fare in modo che la partizione Windows sia automaticamente visibile a Linux, procedete come segue.

Figura 17-1. Il file /etc/fstab.

In questo modo, la partizione Windows sarà automaticamente visibile a Linux a ogni avvio del computer.

Aggiungere dischi rigidi

Se il vostro computer contiene altri dischi rigidi oltre il primo e li avete destinati a Windows (e quindi formattati di conseguenza), per farli vedere a Linux potete usare lo stesso metodo. Tutto quello che dovete fare è specificare, al posto di hda1, che rappresenta la prima partizione del primo disco rigido, hdb1, vale a dire la prima partizione del secondo disco rigido, e così via per analogia.

Più potere al popolo

Limitare l'accesso degli utenti alla partizione Windows nel modo descritto sopra, cioè consentirne soltanto la lettura senza che vi possano scrivere, è un'ottima idea negli ambienti di lavoro in cui più persone condividono lo stesso computer ed è necessario garantire che soltanto chi sa quello che fa possa eseguire operazioni potenzialmente distruttive come cancellare o modificare un file.

Così come stanno le cose, però, per consentire a un utente normale di modificare un file della partizione Windows è necessario copiare il file alla partizione Linux, usare root per riassegnare i permessi di scrittura in modo che il file diventi modificabile dall'utente normale, modificare la copia usando l'utente comune, poi rientrare come root per trasferire la versione modificata dalla partizione Linux alla partizione Windows.

Anche se siete voi l'amministratore del sistema e quindi conoscete la password di root, questo è sicuramente un modo molto macchinoso di procedere. È anche un modo molto prudente, ma alla lunga troppa prudenza può scocciare.

A costo di ripetermi, e so che ce n'è bisogno perché la tentazione è forte e l'ho provata anch'io, non pensate neppure per un istante di mettervi a lavorare usando l'utente root! Questo va contro ogni più basilare norma di sicurezza. D'altronde esiste un metodo molto semplice per risolvere il problema salvando capra e cavoli: abilitare un utente normale (ad esempio il vostro) alla scrittura nella partizione Windows.

Il requisito fondamentale per quest'operazione è conoscere l'UID (il codice identificativo numerico) dell'utente che avete scelto: lo trovate nel file /etc/group, accanto al nome dell'utente. Ad esempio, nel mio caso l'utente cesira ha in /etc/group una riga contenente

cesira:x:500:

Questo significa che il suo UID è 500, ed è questo il codice che ci serve per abilitare Cesira all'uso della partizione Windows.

Supponiamo che la partizione Windows sia la prima del primo disco rigido (/dev/hda1) e che il suo mount point sia /mnt/win. Per consentire a un singolo utente normale di scrivere e modificare la partizione Windows una tantum, procedete nel modo seguente:

Se volete rendere permanenti e automatiche queste impostazioni, accedete come root e modificate il file /etc/fstab in modo che la partizione Windows sia specificata nel modo seguente:

/dev/hda1 /mnt/win vfat exec,dev,suid,rw,uid=xxx,gid=xxx 1 1

Salvate il file /etc/fstab e poi date (come root) il comando /bin/mount -a per dire a Linux di rileggere il file /etc/fstab aggiornato e prendere atto delle modifiche. A questo punto, l'utente che avete scelto è d'ora in poi abilitato automaticamente a leggere, scrivere, cancellare e modificare i file della partizione Windows; gli altri utenti normali sono abilitati soltanto alla lettura. Root, ovviamente, rimane onnipotente.

Tutto il potere al popolo

Se invece volete allentare ancora di più i legacci della sicurezza, potete assegnare i diritti di scrittura nella partizione Windows a tutti gli utenti. Il modo più semplice è modificare il file /etc/fstab come appena descritto, con l'unica differenza che al posto di specificare uid=xxx,gid=xxx specificate umask=0.


Dando il solito comando /bin/mount -a per rileggere /etc/fstab renderete permanente e automatica questa nuova impostazione.

Windows “vede” Linux

Avete visto come si può usare Linux per lavorare nella partizione Windows e scambiare file fra le due partizioni. Purtroppo questo sistema significa che se volete trasferire un file da una partizione all'altra dovete per forza usare Linux. Questo significa che se state usando Windows e vi serve un file che si trova nella partizione Linux, dovete:

Sarebbe bello se si potesse fare con Windows quello che abbiamo fatto con Linux, cioè consentirgli di leggere e manipolare i file presenti nella partizione dell'altro sistema operativo. Per fortuna qualcosa in questo senso si può fare.

Non aspettatevi grandi cose, però, perché una delle regole d'oro della convivenza di Linux e Windows è "occhio non vede, cuore non duole". In altre parole, se Windows non sa che c'è Linux a tenergli compagnia, le cose vanno bene e voi vi godete due sistemi operativi. L'importante è appunto non far sapere a Windows dell'esistenza dell'altro sistema operativo, altrimenti scatta il finimondo.

Linux, invece, essendo di natura accomodante, non ha problemi a sapere del menage à trois che avete realizzato e scambia tranquillamente informazioni con la partizione Windows. Qualunque parallelo con la vostra vita sentimentale è puramente casuale e di certo non vi sto consigliando di applicare questo esempio informatico ai vostri rapporti personali.

C'è un'eccezione a questa regola, ed è explore2fs, un piccolo programma per Windows che consente appunto di leggere (e, se siete avventurosi, scrivere) da Windows nella partizione Linux. Beninteso, questo vi consente soltanto di scambiare file, non di eseguire programmi Linux sotto Windows, ma è pur sempre una bella comodità e sicuramente vi può far risparmiare continui riavvii per passare da Windows a Linux solo per spostare un file.

Attenzione: Questo programma funziona bene sotto Windows 95B e Windows 98; funziona anche sotto Windows 95A, ma in quest'ultimo caso richiede una configurazione piuttosto delicata, descritta nelle istruzioni che accompagnano il programma. Tuttavia, vi sconsiglio di usarlo se state ancora adoperando Windows 95A: il rischio di fare disastri è molto elevato.

Prelevare explore2fs

Explore2fs, scritto da John Newbigin, è gratuito e liberamente distribuibile. Le istruzioni per prelevare la versione più recente sono disponibili (in inglese) presso http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm. Il file è molto piccolo (circa 320 kilobyte) e quindi il prelievo è veramente indolore.

Installare explore2fs

Il prelevamento consiste di un unico file in formato ZIP. Sotto Windows, create una cartella (ad esempio c:\programmi\explore2fs) e scompattatevi dentro il file ZIP appena prelevato.

Otterrete una serie di file, fra cui troverete explore2fs.exe. Eseguitelo, e vedrete il contenuto della vostra partizione Linux. Facile, no?

Se volete aggiungere Explore2fs alla barra delle applicazioni, usate il consueto metodo di Windows, creando un link (collegamento) al file explore2fs.exe.

Figura 17-2. Vedere la partizione Linux da Windows con Explore2fs.

Usare explore2fs

Anche se le diciture a video sono in inglese, non dovreste avere molti problemi ad orientarvi (se volete la versione italiana, fatevela: il codice sorgente è liberamente disponibile e John Newbigin sarebbe felicissimo del vostro aiuto). La schermata è praticamente identica a quella di Esplora Risorse.

Nella sua installazione standard, Explore2fs è impostato per consentire l'accesso alla partizione Linux soltanto in lettura. È possibile anche scrivere nella partizione Linux, ma l'autore lo sconsiglia, o perlomeno vi avvisa che lo fate a vostro esclusivo rischio e pericolo. Siete stati avvisati. Le mie prove non sono state molto confortanti.

Copiare un file dalla partizione Linux a quella Windows è molto semplice: visualizzate la directory che contiene il file da copiare, selezionate il file e cliccate con il pulsante destro sul nome del file selezionato (non usate il sistema "copia-e-incolla" di Esplora Risorse, non funziona). Dal menu che compare, scegliete Export file.

Compare una finestra di dialogo nella quale potete scegliere la cartella Windows di destinazione del file. Una volta che avete cliccato sulla cartella, inizia la copia del file.

Un altro uso molto comodo di Explore2fs è l'esplorazione della partizione Linux. Soprattutto i primi tempi, farete fatica a ricordare come sono organizzate le directory di Linux e vi perderete spesso. Questo programma vi offre un modo agevole per fare un giro nella struttura di directory di Linux usando un'interfaccia familiare come quella di Esplora Risorse.

Sicurezza

Installare Explore2fs sul computer è un'arma a doppio taglio. Da un lato vi consente di leggere la partizione Linux da Windows, e questo è in genere utile; dall'altro, però, il fatto stesso di poter leggere indiscriminatamente (e copiare) quello che avete nella partizione Linux può essere un pericolo per la sicurezza.

Infatti Explore2fs è in grado di leggere tutte le directory di Linux, comprese quelle di sistema e quelle degli utenti. Non occorre digitare password o altro.

Questo significa che finché Windows convive con Linux sul vostro computer, chiunque può accedere ai dati dell'area Linux anche se avete preso tutte le precauzioni possibili sotto Linux: gli basta installare sotto Windows Explore2fs per scavalcare tutte le vostre password e diventare superutente. L'unica protezione praticabile è la crittografia dei singoli file, che non è mai una cosa facile da mantenere.

Anche con la crittografia, comunque, se l'intruso abilita Explore2fs alla scrittura nella partizione Linux, può cancellare qualsiasi file e rendere del tutto inservibile la vostra installazione di Linux. Chiaramente, se siete voi l'unica persona a gestire il computer, questi problemi non si pongono. Sta dunque a voi valutare se questo programma è un pericolo o un beneficio per la vostra specifica situazione.

Da Windows a Linux in rete locale

Se si tratta di trasferire dati da un computer Linux a una macchina Windows o viceversa e avete modo di accoppiare i due computer tramite un cavo Ethernet, avete a disposizione il metodo più veloce e pratico per muovere grandi quantità di dati in poco tempo. Inoltre vi si aprono nuove possibilità, tipo la condivisione di file e stampanti, che gli altri metodi di comunicazione fra Windows e Linux non consentono.

Non è detto che il cavo debba far parte di una rete locale esistente: potete anche creare al volo una “mini-rete” collegando i due computer con un cavo Ethernet del tipo cross-connect con connettori RJ45. Questo cavo particolare, facilmente reperibile nei negozi d'informatica, non necessita di un hub, cioè di una centralina di smistamento dei segnali del tipo usato nelle reti locali vere e proprie: si attacca direttamente ai due computer e permette loro di comunicare. Di conseguenza è comodissimo da installare al volo, ad esempio se portate il computer a un Linux Installation Party (se non sapete cos'è, date un'occhiata al Capitolo 22).

Le istruzioni che seguono sono dedicate al caso di una connessione diretta tramite cavo Ethernet fra un computer Linux e una macchina Windows (ma valgono anche per la connessione fra due macchine Linux) e partono dal presupposto che abbiate già eseguito tutte le fasi preliminari descritte nella sezione Mettere in rete Linux del Capitolo 14 e che la macchina Windows sia già correttamente configurata per quanto riguarda la sua scheda di rete.

Mi scuso per le inevitabili ripetizioni in cui incapperò descrivendo i servizi di rete due volte (per le distribuzioni 7.0 e 6.2), ma questo è un manuale di Linux, non un manuale di stile letterario.

Mi raccomando, eseguite queste operazioni soltanto se intendete condividere con altri computer (locali o su Internet) i file presenti sul vostro computer. Ricordate che potete navigare in Internet e prelevare file dai computer altrui anche senza attivare i servizi di rete descritti nelle prossime pagine. Il motivo di questa raccomandazione è semplice: prima di tutto, non si deve mai installare ciò che non serve; in secondo luogo, una macchina Linux in cui sono stati attivati questi servizi di rete diventa più vulnerabile agli attacchi informatici.

Un'altra cosa: nelle prossime pagine sentirete parlare spesso di demoni. Nel gergo di Linux, si chiama demone qualsiasi programma che viene avviato quando parte Linux e rimane dormiente in attesa che qualcuno abbia bisogno di evocare i suoi servizi. I programmi che gestiscono la comunicazione in rete sono appunto classificati come demoni. Non chiedetemi perché si chiamano così. Qualunque riferimento satanico è puramente umoristico e non intende certo promuovere culti o superstizioni di cui si vergognerebbe un Neanderthal.

Attivare i servizi di rete in Red Hat Linux 7.0

Per prima cosa bisogna scoprire se è installato il cosiddetto “superdemone” di gestione dei servizi di rete, che in Red Hat Linux 7.0 prende il nome di xinetd. Per sapere se xinetd è già installato o no, lanciate kpackage e cercatelo: cliccate sul pulsante che reca la lente d'ingrandimento e digitate xinetd nella finestra di dialogo Find package. Kpackage elencherà i pacchetti che contengono la sequenza di lettere xinetd: se non trova nulla, vuol dire che xinetd non è installato.

Installare xinetd è molto semplice: inserite il primo CD-ROM di Red Hat Linux 7.0 nel lettore e andate nella sottodirectory RedHat/RPMS, che contiene i principali pacchetti installabili. Cliccate sul file il cui nome inizia per inetd per far partire il programma di installazione kpackage: poi cliccate su Install per eseguire l'installazione vera e propria.

Se l'installazione di Linux si è dimenticata di xinetd, è probabile che abbia perso di vista anche due altri demoni importanti per le comunicazioni in rete locale: ftpd e telnetd. Questi demoni non sono strettamente indispensabili per l'uso della rete locale, ma se volete che la macchina Linux risponda alle richieste di comando a distanza o di trasferimento di file provenienti da altri computer, vi servono.

Per sapere se sono installati, usate il comando find per cercare due file di nome /usr/sbin/in.ftpd e, rispettivamente, /usr/sbin/in.telnetd. Se questi file non ci sono, vuol dire che i demoni non sono stati installati: in tal caso accedete al primo CD-ROM di Red Hat Linux 7.0 come prima e cliccate rispettivamente sul file che inizia con wu-ftpd e poi su quello che inizia con telnet-server per far partire kpackage e poi cliccate su Install.

Al termine, riavviate il computer per rendere attive le modifiche. Noterete che nei messaggi di avvio compare l'indicazione dell'avvio di xinetd (Starting xinetd).

Attivare i servizi di rete in Red Hat Linux 6.2

Il primo passo è verificare se durante l'installazione di Linux è stato installato il cosiddetto “superdemone” di gestione dei servizi di rete. In Red Hat Linux 6.2, questo demone prende il nome di inetd. Per sapere se inetd è già installato o no, lanciate kpackage e cercatelo: cliccate sul pulsante che reca la lente d'ingrandimento e digitate inetd nella finestra di dialogo Find package. Kpackage elencherà i pacchetti che contengono la sequenza di lettere inetd: se non trova nulla, vuol dire che inetd non è installato.

Installare inetd è molto semplice: inserite il CD-ROM di Red Hat Linux 6.2 nel lettore e andate nella sottodirectory RPMS, che contiene tutti i pacchetti installabili. Cliccate sul file il cui nome inizia per inetd per far partire il programma di installazione kpackage: poi cliccate su Install per eseguire l'installazione vera e propria.

Se l'installazione di Linux si è dimenticata di inetd, è probabile che abbia perso di vista anche due altri demoni importanti per le comunicazioni in rete locale: ftpd e telnetd. Questi demoni non sono strettamente indispensabili per l'uso della rete locale, ma se volete che la macchina Linux risponda alle richieste di comando a distanza o di trasferimento di file provenienti da altri computer, vi servono.

Per sapere se sono installati, usate il comando find per cercare due file di nome /usr/sbin/in.ftpd e, rispettivamente, /usr/sbin/in.telnetd. Se questi file non ci sono, vuol dire che i demoni non sono stati installati: accedete al CD-ROM di Linux come prima e cliccate rispettivamente sul file che inizia con wu-ftpd e su quello che inizia con telnet-server per far partire kpackage e poi cliccate su Install.

Al termine, riavviate il computer per rendere attive le modifiche. Noterete che nei messaggi di avvio compare l'indicazione dell'avvio di inetd.

Internet in casa: scambiare file con FTP

FTP è uno dei protocolli usati su Internet per trasferire file da un punto all'altro della Rete. Se avete una vostra pagina Web personale, probabilmente lo avete già incontrato come strumento per inviare al sito ospitante i file che compongono la pagina Web.

Dato che le reti locali si basano quasi sempre sugli stessi protocolli che usa Internet, potete usare gli strumenti di Internet anche per scambiare dati localmente. In pratica, invece di collegarvi con FTP a un sito remoto situato chissà dove, vi collegate con lo stesso programma a un “sito” che non è altro che il computer situato all'altro capo del cavo di rete. In altre parole, vi create una “piccola Internet” in casa.

Se siete abituati all'angosciante lentezza dei trasferimenti di dati con FTP su Internet, vi assicuro che vi ricrederete: una connessione diretta con un cavo Ethernet da 10 megabit ha tempi di reazione sostanzialmente istantanei. Trasferire file in questo modo è un vero piacere, ma ha il suo prezzo: occorre infatti che siano attivi i servizi ftp sui due computer.

Windows è già a posto, dato che ftp è automaticamente attivato e installato (è disponibile in una finestra DOS oppure tramite programmi aggiuntivi come CuteFTP e simili). L'unica cautela è che bisogna impostare eventuali programmi firewall, come l'ottimo ZoneAlarm, in modo che consentano all'ftp di Windows di accedere bidirezionalmente alla rete locale (cioè mandare e ricevere file).

Normalmente anche Linux è già in ordine e pronto a scambiare dati tramite ftp, ma non lo sarà se avete già adottato le impostazioni di sicurezza descritte nel Capitolo 18 o se Linux le ha adottate automaticamente per voi. Se quello che descrivo nelle prossime righe non funziona, date un'occhiata al Capitolo 18 per vedere se è stato disabilitato l'ftp in entrata.

Supponiamo che tutto sia configurato correttamente. Per avviare una sessione di ftp e scambiare file fra i due computer, andate a quello sul quale gira Windows e aprite una finestra DOS.

In questa finestra, digitate ftp seguito dall'indirizzo IP della macchina Linux. Ottenete una risposta di questo genere:

C:\WINDOWS>ftp 192.168.1.3
Connected to 192.168.1.3.
220 deepspace9 FTP server (Version wu-2.6.0(1) Mon Feb 28 10:30:36 EST 2000) ready.
User (192.168.1.3:(none)):

Non è necessario dare alcun comando alla macchina Linux, che risponde automaticamente alla richiesta di connessione. Alla richiesta user, rispondete immettendo il nome di login di un utente autorizzato della macchina Linux.

User (192.168.1.3:(none)): paolo
331 Password required for paolo.
Password:

Immettete la password di login dell'utente (che non viene visualizzata) per ottenere il prompt di ftp.

230 User paolo logged in.
ftp>

A questo punto le due macchine sono collegate e lo scambio di file può avvenire senza ulteriori complicazioni, eccetto quella di ricordarsi i vari comandi di ftp. I principali sono elencati qui:

Per saperne di più, avete a disposizione le pagine man ftp e ftpd. Tuttavia non è indispensabile memorizzare le centinaia di opzioni di ftp: conviene di gran lunga usare un programma ad interfaccia grafica, come CuteFTP, che gestisce per voi tutti i comandi.

Creare una connessione in CuteFTP significa cliccare su Add site nella schermata iniziale, immettere i parametri di connessione: il nome della macchina Linux in Site label, il suo indirizzo IP in Host address, il nome dell'utente in User ID, e la sua password in Password. Fatto questo, vi basta cliccare su Connect per avviare la connessione.

Figura 17-3. FTP grafico da Windows a Linux con CuteFTP.

La schermata di CuteFTP è molto intuitiva: a sinistra trovate la directory corrente della macchina locale (Windows), a destra quella della macchina “remota” (Linux). In alto scorrono i comandi corrispondenti alle azioni che potete effettuare con il mouse: per mandare un file alla macchina remota, cliccate sul nome del file e poi sul pulsante Upload (freccia verso l'alto); per prelevare, cliccate sempre sul nome del file e poi sul pulsante Download (freccia verso il basso).

Le altre operazioni più comuni, come rinominare e cancellare un file o cambiare directory, si eseguono con gli stessi metodi che ben conoscete in Esplora Risorse. L'altra cosa importante da notare è che l'accesso alla macchina Linux tramite FTP mantiene gli stessi permessi e le stesse regole dell'accesso normale: non potete scorrazzare liberamente per il disco rigido, ma potete leggere e modificare soltanto le directory e i file sui quali l'utente che avete usato per collegarvi ha i permessi corrispondenti.

In altre parole, se l'utente cesira è impostato in modo da avere accesso in scrittura soltanto alla propria home directory, se vi collegate tramite FTP usando il suo nome e la sua password avrete accesso in scrittura soltanto a /home/cesira, esattamente come se foste seduti davanti alla macchina Linux in una normale sessione di lavoro con quell'utente.

Linux e Windows in rete locale: Samba

Se usate Windows in un ambiente in cui ci sono vari computer collegati fra loro in rete locale, avrete apprezzato la comodità di condividere risorse come la stampante o l'accesso veloce a Internet o i dischi rigidi. Se migrate a Linux il vostro computer, verrete tagliati fuori?

Per fortuna no, grazie a un programma chiamato Samba, gratuito e reperibile presso http://www.samba.org. Non mi posso addentrare qui nei dettagli della sua installazione e configurazione: sarei troppo fuori tema e ci vorrebbe mezzo libro. L'importante, per ora, è che sappiate che esiste la possibilità di includere una macchina Linux in una rete di macchine Windows in modo totalmente trasparente, cioè senza che gli utenti Windows si accorgano di comunicare con un sistema operativo non-Microsoft.

Figura 17-4. Windows non lo sa, ma quelle cartelle condivise e quella stampante sono su una macchina Linux.

Procurarsi Samba è piuttosto semplice: lo potete prelevare gratuitamente da Internet, ma ce l'avete anche sul CD di installazione di Linux (si tratta di tre file RPM i cui nomi iniziano per samba). Non occorre installare nulla sulle macchine Windows con le quali volete comunicare: basta dare il comando di sfogliare la rete per vedere le directory e stampanti Linux condivise.

La configurazione sulla macchina Linux, invece, è parecchio impegnativa, perché vi serve conoscere molto bene l'organizzazione delle condivisioni di file e stampanti nelle varie versioni di Windows, con relative password e nomi utente. Le pagine man di samba sono molto eloquenti, e alcune delle funzioni di configurazione sono automatizzabili con linuxconf e programmi interattivi prelevabili a parte, ma configurare correttamente Samba rimane comunque un'impresa notevole: fatelo soltanto se davvero dovete includere una macchina Linux in una rete Windows senza che si noti la differenza. Se dovete soltanto condividere file, usare Samba è esagerato.

Per incoraggiarvi nell'impresa, posso dirvi che l'integrazione fra Windows e Linux offerta da Samba è davvero magnifica e trasparente. Con Samba potete usare il comando smbmount, o le impostazioni del file /etc/stab, per montare directory condivise che risiedono su altri computer sui quali gira Windows. Linux le vede come se fossero semplici sottodirectory della propria struttura di directory. Lavorare in rete con Samba è una pacchia, insomma.

Non solo Samba

Samba è dedicato all'integrazione di macchine Linux in una rete Windows. Se invece dovete creare una rete locale composta da macchine Linux (o, più in generale, da macchine che usano UNIX), si usa NFS. La configurazione e l'installazione di NFS, e la descrizione dei suoi inevitabili problemi di sicurezza, sono argomenti piuttosto sofisticati che vi risparmio. Per ora, l'importante è che sappiate che esiste qualcosa chiamato NFS e che si usa per collegare in rete computer Linux.

Spirito di emulazione

Ogni tanto bisogna arrendersi al fatto che non esiste la versione Linux di tutti i programmi Windows. Ad esempio, non esiste una versione Linux di Microsoft Office, nonostante le voci dei bene informati affermino che sarà disponibile tra breve. Staremo a vedere.

Nel frattempo, se siete alle prese con un programma per Windows di cui non riuscite a trovare una versione o un sostituto che funzioni sotto Linux, vi resta soltanto una strada: l'emulazione. In pratica, si tratta di usare un programma (chiamato emulatore) che gira sotto Linux e all'interno del quale girano, a loro volta, i programmi per Windows.

I programmi Windows, se l'emulatore è fatto bene, non si accorgono nemmeno di essere in esecuzione su una macchina Linux: per quel che ne sanno, stanno girando sotto un normalissimo Windows.

Figura 17-5. Un programma per Windows gira sotto Linux grazie a Wine.

Ci sono vari programmi che consentono di emulare Windows sotto Linux. Data la complessità dell'impresa, è comprensibile che gli emulatori più sofisticati siano prodotti non gratuiti, come VMware, disponibile in prova presso http://www.vmware.com. Tuttavia anche gli emulatori gratuiti sono più che dignitosi, e uno dei più diffusi è Wine, prelevabile da http://www.winehq.com.

Se non avete problemi di denaro e avete un computer particolarmente potente, non posso che consigliarvi VMware. Non è a buon mercato (una licenza per uso professionale costa seicentomila lire, ma si scende a duecentomila per uso amatoriale), ma consente cose spettacolari come far girare contemporaneamente Windows e Linux sullo stesso computer.

Con VMware, Microsoft Office gira tranquillamente sotto Linux. Anzi, per essere precisi gira sotto Windows 95/98, che gira “dentro” una finestra di Linux. Questa è una differenza importante rispetto a Wine, che non ha bisogno di Windows (o perlomeno ne ha bisogno solo alcune piccole parti). VMWare, invece, richiede che installiate comunque tutto Windows, per cui siete daccapo e avete mancato lo scopo di passare da Windows a Linux.

Figura 17-6. VMware esegue Excel e altri programmi Windows su una macchina Linux. Immagine tratta dal sito VMware.

Se invece preferite non spendere e le vostre esigenze sono più modeste, Wine è una soluzione accettabilissima. È in grado di far girare gran parte delle applicazioni Windows, ma non bene quanto VMware. Ha senso usarlo, ad esempio, per far girare sotto Linux uno o due programmi Windows abbastanza semplici, come ad esempio i dizionari, ma non aspettatevi di farci girare AutoCAD o Microsoft Office.

A prescindere dall'emulatore che usate, il vero guaio è che qualsiasi emulazione ha un prezzo in termini di prestazioni. Far girare un sistema operativo (Linux) che ne fa girare un secondo (Windows) che a sua volta fa girare le applicazioni (Word, per esempio) richiede un processore paurosamente veloce e moltissima RAM, altrimenti il risultato sarà una lentezza esasperante di tutto l'insieme.

In altre parole, se si tratta di usare ogni tanto un emulatore per far girare gli unici due o tre programmi Windows che non siete riusciti a rimpiazzare con versioni o equivalenti per Linux, nessun problema. Ma se vi trovate a trascorrere buona parte del tempo ad usare programmi per Windows, forse fareste bene a usare direttamente Windows invece di passare attraverso Linux.

Emulare il DOS

Se avete un programma DOS al quale non volete o non potete rinunciare, ma volete usarlo sotto Linux, provate uno dei più diffusi emulatori gratuiti dell'ambiente DOS per Linux: dosemu.

Emulatori come Dosemu sono considerati "instabili e immaturi" dalla comunità Linux, ma già così sono sufficientemente robusti da consentire di lavorare con tranquillità con le applicazioni DOS che non riuscite a sostituire con un equivalente Linux. Dosemu gestisce i TSR (le applicazioni che si "siedono sopra" i programmi DOS, come il mitico Sidekick o il supporto per mouse) e la memoria espansa, le porte seriali e parallele, i CD-ROM, e molte altre funzioni del DOS che non sto qui a rievocare.

In linea di principio potete farci girare anche la maggior parte dei giochi per DOS, compresi quelli altamente grafici come Dark Forces, Doom e parenti vari, ma non è consigliabile, visto che l'emulazione DOS, come tutte le emulazioni, produce un rallentamento che non si avverte nelle applicazioni normali ma che diventa fastidioso quando si usano i giochi.

Procurarsi Dosemu

Siccome ormai il DOS interessa a pochi utenti, spesso Dosemu non è incluso nelle distribuzioni di Linux. Il modo più affidabile di procurarselo è quindi il prelevamento da Internet, ad esempio presso il sito dedicato al programma (http://www.dosemu.org).

Il file da prelevare è la versione binaria, il cui nome è del tipo dosemu*.rpm. Il prelevamento è piuttosto rapido, dato che il pacchetto occupa meno di un megabyte e mezzo.

La documentazione del programma è anch'essa reperibile su Internet presso il sito di Dosemu; ce n'è anche una versione in italiano presso i siti italiani di documentazione di Linux (come Pluto, citato nel Capitolo 22 dedicato alle risorse Linux). Cercate un documento intitolato dosemu-howto.

Installare Dosemu

Come sempre, la prima cosa da fare per installare un'applicazione Linux è leggere con devozione la documentazione. Fatto questo, cliccate sul file RPM per far partire kpackage e cliccate su Install per installare il pacchetto. Tutto qui.

Come vedete, l'installazione in sé è quindi molto semplice. La parte interessante è la configurazione, senza la quale Dosemu non gira nemmeno se piangete in swahili. Quella che vi presento qui è solo una, la più prudente, delle tante possibili che troverete descritte nei manuali di Dosemu. È molto rudimentale, ma è sufficiente a darvi un rapido assaggio del programma.

Create una directory in /var/lib/dosemu. Datele il nome che preferite: conviene usarne uno che ne spieghi la funzione, come ad esempio area_dos. Questa directory diventa infatti la directory radice di un disco rigido DOS emulato: in altre parole, Dosemu vede questa directory come se si trattasse della directory c:\ di un computer DOS, e le applicazioni DOS che installerete in questa cartella saranno convinte di trovarsi nella directory c:\ di un disco rigido di un computer DOS. Nulla sapranno del Linux che li circonda.

In questa cartella copiate i file fondamentali del DOS, cioè command.com, msdos.sys e io.sys (alcune versioni di DOS usano nomi diversi, come ibmbio.sys; consultate la documentazione del vostro DOS). Questi file non sono inclusi in Dosemu: ve li dovete procurare altrove.

L'emulatore di DOS, infatti, non è una creatura autosufficiente, perché crea semplicemente un ambiente compatibile con il DOS, ma non contiene i file del sistema operativo DOS. È come un parco giochi: un ambiente sicuro in cui far giocare i bambini, ma i bambini ce li dovete mettere voi.

Se avete una qualsiasi versione di MS-DOS di cui possedete regolare licenza, potete usarne i file per questa emulazione del DOS sotto Linux. Anche Windows 95/98 contiene una versione di DOS utilizzabile a questo scopo: ci sono vari modi per crearla, ma il più spiccio è creare un dischetto di ripristino d'emergenza e copiare i vari file da lì.

Sbarazzarsi del DOS Microsoft

Continuare a usare programmi DOS non significa necessariamente che dovete continuare a dipendere da Microsoft e dalle relative licenze. Innanzi tutto, il DOS non è un monopolio Microsoft: ne esistono molte altre versioni di altre case produttrici.

Vale la pena di citare, in particolare, Caldera e il suo OpenDOS, che è liberamente distribuibile. Anche la comunità Linux non è rimasta inerte: infatti è nato il progetto FreeDOS, il cui sito Internet è http://www.freedos.org. Gli autori avvisano che si tratta di un DOS sperimentale e quindi soggetto a una certa instabilità, ma si sa che i linuxiani sono perfezionisti e autocritici fino all'eccesso.

Aprite il file /etc/dosemu.conf con un editor di testi e modificate la riga che inizia con $_hdimage. Al posto di quello che c'è scritto fra le virgolette, mettete il nome della directory Linux che avete creato prima (nell'esempio, area_dos). Salvate e chiudete il file. Quest'operazione serve per dire a dosemu dove cercare i programmi DOS che deve far girare.

Figura 17-7. Modificare /etc/dosemu.conf.

A questo punto aprite una finestra di terminale Linux e digitate xdos. Vi comparirà una bella finestra nera con il classico prompt “C:”. Complimenti: avete creato un ambiente DOS sotto Linux e ora potete sbizzarrirvi. Tutti i comandi interni del DOS sono a vostra completa disposizione. Ad esempio, potete usare md per creare delle sottodirectory, o copy per copiare un file, o ancora ren per cambiarne il nome o del per cancellarlo.

Usando Linux, potete copiare dentro la cartella area_dos un qualsiasi programma DOS ed eseguirlo dentro dosemu, facendogli credere di essere su un disco rigido DOS. Ad esempio, ho copiato WordStar 3.4, insieme ai suoi file di supporto, alla cartella /var/lib/dosemu/area_dos, e lui è convinto di trovarsi nella directory radice di un disco rigido DOS. Beata innocenza.

Figura 17-8. WordStar... per Linux?

Non solo DOS e Windows

Le emulazioni offerte da Linux non si limitano certo a DOS e Windows. Sotto Linux sono disponibili emulatori per una varietà strepitosa di sistemi operativi e di macchine che adesso suscitano calde lacrime di nostalgia nei veterani al solo nominarle: Sinclair Spectrum, Apple II, CP/M... La lista è lunga: per saperne di più, usate un motore di ricerca con le parole chiave Linux e emulator, oppure consultate il sito http://www.linux.com/links/Software/Emulators/, da cui ho riassunto quest'elenco parziale.

Linux dentro Windows

Per finire, vale la pena almeno di citare i client X per Windows, ossia programmi che consentono di avere una “finestra Linux” all'interno di Windows. Attenzione, però: non si tratta di emulazione, perché in realtà Linux è quello vero, non un'imitazione, e soprattutto gira su un computer separato.

Mi spiego meglio. Immaginate di avere due computer collegati in rete (preferibilmente in rete locale, anche se si può in teoria collegarli via Internet, a patto di avere una connessione velocissima): su uno gira Windows, sull'altro Linux. Con un client X per Windows, potete sedervi davanti alla macchina Windows e aprire una finestra nella quale vedete lo schermo grafico del Linux che sta girando sull'altro computer. In sostanza, la macchina Windows fa da terminale grafico remoto della macchina Linux.

Ci sono vari client X per Windows in circolazione: quello mostrato qui è MI/X, della MicroImages (http://www.microimages.com). Non è gratuito, ma è prelevabile per un periodo di prova di quindici giorni. Fra l'altro, esistono client X anche per altri sistemi operativi, come ad esempio BeOS e Amiga.

Figura 17-9. Linux dentro una finestra di Windows: un client X.

Una delle applicazioni più tipiche di questo genere di programma è il riciclaggio dei vecchi computer. Infatti è sufficiente un computer di prestazioni anche molto modeste (quanto basta per far girare il suo sistema operativo più il client X). Il vecchio computer diventa un terminale grafico di Linux e sfrutta la potenza di calcolo e le risorse hardware della macchina Linux al quale è collegato.

Un'altra possibilità è “remotizzare” la macchina Linux. Ad esempio, se non avete voglia di spendere l'iradiddio per un monitor piatto a cristalli liquidi ma avete un PC portatile sul quale gira Windows, potete installare un client X sul portatile e “telecomandare” la macchina Linux dal portatile, usando il suo schermo piatto come monitor della macchina Linux.

Potete addirittura installare la macchina Linux in uno sgabuzzino o in un'altra stanza, in modo da non essere afflitti dal rumore della sua ventola, e dato che sono i dischi e CD-ROM della macchina Linux a girare, il portatile non fa girare i propri e quindi diventa completamente silenzioso. Per chi lavora in casa è una vera pacchia: niente rumore e niente ingombro di monitor a tubo catodico.


Clicca sulle voci della colonna di sinistra per proseguire la lettura.