<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Linux IPX-HOWTO: Configurazione della propria macchina Linux come client NCP</TITLE> <LINK HREF="IPX-HOWTO-10.html" REL=next> <LINK HREF="IPX-HOWTO-8.html" REL=previous> <LINK HREF="IPX-HOWTO.html#toc9" REL=contents> </HEAD> <BODY> <A HREF="IPX-HOWTO-10.html">Avanti</A> <A HREF="IPX-HOWTO-8.html">Indietro</A> <A HREF="IPX-HOWTO.html#toc9">Indice</A> <HR> <H2><A NAME="s9">9. Configurazione della propria macchina Linux come client NCP</A></H2> <P>È probabile che gli utenti di reti a tecnologia mista, comprendente protocolli IP e IPX, prima o poi desiderino che la propria macchina Linux possa accedere a dati memorizzati in un file server Novell sulla rete. Novell offre da tempo un pacchetto NFS per i propri file server in grado di consentire questa funzione; tuttavia, nel caso di una piccola installazione, o se solo un ristretto numero di persone è interessato a tale funzionalità, non è facile giustificare il costo del pacchetto commerciale. <P> <A HREF="mailto:lendecke@namu01.gwdg.de">Volker Lendecke lendecke@namu01.gwdg.de</A> ha scritto un modulo che consente di montare volumi Novell sul file system Linux senza richiedere alcun prodotto addizionale per il file server. Volker ha denominato il pacchetto <B>ncpfs</B> e ha tratto le informazioni necessarie principalmente dal libro ``Netzwerkprogrammierung in C'' di Manfred Hill e Ralf Zessin (ulteriori dettagli sul libro sono contenuti nel file README del pacchetto <B>ncpfs</B>). <P>Il software consente a Linux di emulare una normale stazione di lavoro Novell per servizi di file. Include anche una piccola utility che consente di stampare le code Novell (questo argomento è documentato nel paragrafo relativo al <A HREF="IPX-HOWTO-11.html#Print Client">Client di Stampa</A>). Il pacchetto <B>ncpfs</B> è in grado di lavorare con file server Novell a partire dalla versione 3.x, mentre non funziona con Novell 2.x. Il client <B>ncpfs</B> funziona anche con prodotti strettamente compatibili con Novell, ma sfortunatamente alcuni, pur dichiarandosi compatibili, non lo sono a sufficienza. Per utilizzare <B>ncpfs</B> con Novell 4.x, è preferibile configurare il fileserver per operare in modalità di emulazione bindery. Il supporto NDS è una aggiunta piuttosto recente alla versione beta di <EM>ncpfs</EM> e per di più in certi paesi è proibito a causa dell'inclusione di tecnologia protetta da brevetto. <P> <H2><A NAME="ss9.1">9.1 Come ottenere <B>ncpfs</B></A> </H2> <P>L'ultimo pacchetto <B>ncpfs</B> fu progettato per versioni del kernel fino alla <I>1.2.13</I> o superiore alla <I>1.3.71</I> (questo include la versione <I>2.x.x</I>). Se il kernel in uso non rientra in queste categorie, è necessario eseguire un aggiornamento, operazione descritta in dettaglio nel <A HREF="http://sunsite.unc.edu/LDP/HOWTO/Kernel-HOWTO.html">Kernel-HOWTO</A>. <P>Il pacchetto <B>ncpfs</B> può essere ottenuto tramite ftp anonimo con il sito di Volker presso <A HREF="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/">ftp.gwdg.de in /pub/linux/misc/ncpfs/</A> oppure <A HREF="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs">sunsite.unc.edu in /pub/Linux/system/filesystems/ncpfs</A><P>o siti mirror. La versione attuale nel momento in cui si scrive questo documento è: <CODE>ncpfs-2.0.11.tgz</CODE> oppure <CODE>ncpfs-2.2.0.tgz</CODE> che aggiunge il supporto NDS. <P> <H2><A NAME="ss9.2">9.2 Compilazione di <B>ncpfs</B> per il kernel <I>1.2.13</I></A> </H2> <P> <DL> <DT><B>Compilazione di un kernel con supporto Ethernet e IPX</B><DD><P>La prima cosa da fare è assicurarsi che il proprio kernel sia stato compilato con l'abilitazione al supporto IPX. Nella versione di kernel <I>1.2.13</I> basta assicurarsi di aver risposto "<B>Y</B>" alla domanda <CODE>The IPX protocol</CODE>, come illustrato nel seguito: <PRE> ... ... Assume subnets are local (CONFIG_INET_SNARL) [y] Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n] The IPX protocol (CONFIG_IPX) [n] y * * SCSI support ... ... </PRE> <P>Ovviamente è necessario includere il driver relativo per la propria scheda Ethernet. Per maggiori dettagli, si dovrebbe consultare <A HREF="http://sunsite.unc.edu/LDP/HOWTO/Ethernet-HOWTO.html">l'Ethernet-HOWTO</A>. <P>A questo punto è possibile procedere alla compilazione del kernel. Al termine potrebbe essere necessario eseguire <CODE>lilo</CODE> per installarlo. <P> <DT><B>Esecuzione del comando <CODE>tar</CODE> per il software <B>ncpfs</B></B><DD><P> <PRE> # cd /usr/src # tar xvfz ncpfs-2.0.10.tgz # cd ncpfs </PRE> <P> <DT><B>Controllo del Makefile</B><DD><P>Se si desidera utilizzare <CODE>kerneld</CODE> per caricare automaticamente il modulo <CODE>ncpfs</CODE>, è necessario togliere il commento alla riga che si riferisce a <CODE>KERNELD</CODE> all'interno del <CODE>Makefile</CODE>. Se non si conosce il significato di questa azione, si dovrebbe leggere <A HREF="http://sunsite.unc.edu/LDP/HOWTO/Kernel-HOWTO.html">Kernel-HOWTO</A> per familiarizzare con la configurazione del modulo kernel. <DT><B>Esecuzione di <CODE>make</CODE> per il software <B>ncpfs</B></B><DD><P>Il software dovrebbe poter essere compilato correttamente senza che siano necessari ulteriori configurazioni, tramite il comando: <PRE> # make </PRE> <P> <DT><B>Copia dei tool IPX, se non ancora presenti</B><DD><P>Al termine dell'esecuzione di <CODE>make</CODE>, tutti gli strumenti necessari dovrebbero trovarsi nella directory <B>ncpfs/bin</B>. È possibile utilizzare il comando: <P> <BLOCKQUOTE><CODE> <PRE> # make install </PRE> </CODE></BLOCKQUOTE> <P>per installare i tool in directory scelte da Volker. Se si sta lavorando su un sistema basato su ELF, si dovrà eseguire nuovamente <CODE>ldconfig -v</CODE> per assicurarsi che venga trovata la libreria condivisa. <P> <DT><B>Copia del modulo <CODE>ncpfs.o</CODE> se necessario</B><DD><P>Se si sta eseguendo la compilazione di un kernel <I>1.2.*</I>, al termine dell'esecuzione di make, si troverà un file denominato <I>ncpfs.o</I> nella directory <CODE>ncpfs/bin</CODE>. Si tratta del modulo di kernel <CODE>ncpfs</CODE>, che dovrebbe essere copiato in luogo utile. Sul sistema <B>debian</B> dell'autore, è stato copiato nella directory <CODE>/lib/modules/1.2.13/fs</CODE> ed <CODE>ncpfs</CODE> aggiunto al file <CODE>/etc/modules</CODE> in modo che venga eseguito automaticamente all'avvio del sistema. Per una diversa distribuzione, si dovrebbe scoprire dove sono localizzati i moduli per copiarlo in quella locazione; in ogni altro caso semplicemente copiarlo nella directory <CODE>/etc</CODE>. Per caricare i moduli manualmente, è necessario utilizzare il comando: <PRE> # insmod ncpfs.o </PRE> <P> </DL> <P> <H2><A NAME="ss9.3">9.3 Come compilare <B>ncpfs</B> per i kernel <I>1.3.71++/2.0.*</I></A> </H2> <P>Per l'ultima versione di <B>ncpfs</B>, si dovrebbe utilizzare un kernel <I>1.3.71</I> o successivo; questo include i kernel <I>2.0.*</I>. <P>Se si ha intenzione di utilizzare un kernel di versione <I>1.3.71</I> o successivo, allora il codice del kernel <B>ncpfs</B> è stato incluso nella distribuzione standard. È sufficiente rispondere ``<B>Y</B>'' alla domanda: <BLOCKQUOTE><CODE> <PRE> Networking options ---> ... ... <*> The IPX protocol ... Filesystems ---> ... ... <*> NCP filesystem support (to mount NetWare volumes) ... </PRE> </CODE></BLOCKQUOTE> <P>A questo punto è necessario seguire le istruzioni per la compilazione dei kernel <I>1.2.*</I>, in modo da costruire i tool; tuttavia non ci sarà un file modulo da installare. <P> <H2><A NAME="ss9.4">9.4 Configurazione e utilizzo di <B>ncpfs</B></A> </H2> <P> <DL> <DT><B>Configurazione del software di rete IPX</B><DD><P>Esistono due modi per configurare il software di rete IPX. È possibile configurare manualmente tutte le informazioni di rete IPX, oppure lasciare che il software determini da solo delle impostazioni ragionevoli, tramite il comando: <P> <BLOCKQUOTE><CODE> <PRE> # ipx_configure --auto_interface=on --auto_primary=on </PRE> </CODE></BLOCKQUOTE> <P>Questo comando dovrebbe funzionare nella maggior parte dei casi, ma se ciò non accade, si invita a leggere il paragrafo <A HREF="IPX-HOWTO-7.html#tool IPX">Tools di IPX</A> per configurare il software manualmente. Si sono notati problemi nell'usare questo comando su reti in cui erano presenti client Windows 95. <P> <DT><B>Collaudo della configurazione</B><DD><P>Dopo la configurazione della rete IPX, dovrebbe essere disponibile il comando <CODE>slist</CODE> che elenca tutti i fileserver Novell presenti: <PRE> # slist </PRE> <P>Se il comando slist fornisce un messaggio del tipo: ``<CODE>ncp_connect: Invalid argument</CODE>'' significa che il kernel probabilmente non supporta IPX. Controllare che sia stato effettivamente avviato il kernel appropriato. Quando si avvia il sistema, i messaggi di startup dovrebbero contenere informazioni riferite a <CODE>IPX</CODE> e <CODE>ncpfs</CODE>. Se, nonostante tutto, il comando <CODE>slist</CODE> non elenca i file server, allora si dovrebbe utilizzare il metodo manuale per la configurazione della rete. <P> <DT><B>Montare un volume Novell(R)</B><DD><P>Se il software di rete IPX funziona correttamente, si dovrebbe essere in grado di montare un volume file server Novell all'interno del file system Linux. Il comando <CODE>ncpmount</CODE> viene utilizzato per questo scopo, e richiede la specifica delle seguenti informazioni: <OL> <LI>Nome del fileserver.</LI> <LI>Identificativo di login nel fileserver. Se esiste, deve essere specificata anche una password.</LI> <LI>Il punto di mount, ossia dove si desidera montare la condivisione. Si tratterà di una directory esistente sulla macchina.</LI> </OL> <P>Esiste un comando equivalente <CODE>ncpumount</CODE> per smontare un file system NCP precedentemente montato. I file system NCP saranno smontati in modo corretto se si esegue un normale shutdown della macchina; pertanto non bisogna preoccuparsi di eseguire il comando <CODE>npcumount</CODE> manualmente prima di arrestare il sistema con <CODE>halt</CODE> oppure <CODE>shutdown</CODE>. <P>Esempio di comando per montare il file server <CODE>ACCT_FS01</CODE>, con login <CODE>guest</CODE>, senza password, corrispondente alla directory <CODE>/mnt/Accounts</CODE>: <PRE> # ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n </PRE> <P>Si noti l'utilizzo dell'opzione <CODE>-n</CODE> per indicare che il login non richiede alcuna password. Stesso login con password <CODE>secret</CODE> avrebbe forma: <PRE> # ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -P secret </PRE> <P>Se non si specifica né l'opzione <CODE>-n</CODE>, né <CODE>-P</CODE>, allora il sistema richiederà una password. <P> <DT><B>Verifica del mount</B><DD><P>Se l'esecuzione è terminata con successo, tutte le unità accessibili all'utente specificato durante il login, saranno elencate come directory sotto il punto di mount. Dovrebbe anche essere possibile percorrere la struttura delle directory per trovare altri file. Alternativamente si può usare l'opzione <CODE>-V</CODE> per montare un singolo volume. <P>NCP non fornisce uid (identificativo utente) o gid (identificativo di gruppo) per la proprietà dei file, tutti i file avranno le autorizzazioni e le proprietà assegnate alla directory che rappresenta il punto di mount, condizionate dai permessi concessi dal server Novell. È necessario tenerne conto quando si effettuano condivisioni tra utenti Linux. <P> <DT><B>Configurazione per l'esecuzione automatica dei mount</B><DD><P>Se si ha la necessità di avere un mount NCP permanente, è possibile configurare i comandi precedentemente descritti all'interno di file <CODE>rc</CODE>, in modo che vengano eseguiti all'avvio del sistema. Nel caso in cui la distribuzione utilizzata non fornisca un metodo per configurare IPX (come Debian), si consiglia di impostare i comandi nel file <CODE>/etc/rc.local</CODE>, se esiste. È possibile utilizzare comandi del tipo: <BLOCKQUOTE><CODE> <PRE> # # Avvio del filesystem NCP /sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o # Configurazione della rete IPX ipx_configure --auto_interface=on --auto_primary=on # login all'Accounting fileserver ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n # </PRE> </CODE></BLOCKQUOTE> <P>Un altro metodo di configurazione consiste nell'elencare nel file <CODE>$HOME/.nwclient</CODE> i mount NCP temporanei o specifici per l'utente che verranno eseguiti regolarmente. È possibile memorizzare specifiche in modo da impostarle senza doverle indicare ogni volta. Il formato è molto semplice: <P> <BLOCKQUOTE><CODE> <PRE> # Il primo inserimento rappresenta il server "preferenziale" che verrà # utilizzato ogni volta non sia specificato esplicitamente un server. # # Login utente TERRY al fileserver DOCS_FS01 con password "password" DOCS_FS01/TERRY password # # Login utente Guest al fileserver ACCT_FS01 senza password. ACCT_FS01/GUEST - </PRE> </CODE></BLOCKQUOTE> <P>Per attivare questi mount si può utilizzare il comando: <BLOCKQUOTE><CODE> <PRE> $ ncpmount /home/terry/docs </PRE> </CODE></BLOCKQUOTE> <P>per montare DOCS_FS01 con login TERRY sotto la directory <CODE>/home/terry/docs</CODE>. Si noti che è stato utilizzato il fileserver DOCS_FS01 perché non ne è stato specificato alcun altro nel comando di mount. Se fosse stato utilizzato il comando: <P> <BLOCKQUOTE><CODE> <PRE> $ ncpmount -S ACCT_FS01 /home/terry/docs </PRE> </CODE></BLOCKQUOTE> <P>allora sarebbe stato montato il fileserver ACCT_FS01 con login GUEST. <P>Nota: affinché questo meccanismo funzioni, l'autorizzazione per il file <CODE>$HOME/.nwclient</CODE> deve essere <CODE>0600</CODE>. Potrebbe essere necessario utilizzare il comando: <P> <BLOCKQUOTE><CODE> <PRE> $ chmod 0600 $HOME/.nwclient </PRE> </CODE></BLOCKQUOTE> <P>Se anche degli utenti non root devono essere autorizzati a utilizzare questo meccanismo, allora il comando <CODE>npcmount</CODE> deve essere <I>Set Userid Root</I>. Ne consegue che potrebbe essere necessario attribuirgli le autorizzazioni: <P> <BLOCKQUOTE><CODE> <PRE> # chmod 4755 ncpmount </PRE> </CODE></BLOCKQUOTE> <P> <DT><B>Collaudo dell'utility <CODE>nsend</CODE>.</B><DD><P>Il pacchetto include anche un utility per inviare messaggi a utenti Novell. Il suo nome è <CODE>nsend</CODE> e viene utilizzato come di seguito riportato: <P> <PRE> # nsend rod hello there </PRE> <P>invia il messaggio ``hello there'' a un utente con login ``rod'' sul file server ``primario'' (ossia il primo che appare nel proprio file <CODE> .nwclient</CODE>). È possibile specificare un altro file server con la stessa sintassi descritta per il comando <CODE>ncpmount</CODE>. </DL> <P> <HR> <A HREF="IPX-HOWTO-10.html">Avanti</A> <A HREF="IPX-HOWTO-8.html">Indietro</A> <A HREF="IPX-HOWTO.html#toc9">Indice</A> </BODY> </HTML>