Articles

Usando Samba per condividere file tra Linux e Windows

La tua rete domestica potrebbe avere alcune macchine Windows al piano terra, un Mac in una camera da letto al piano superiore, un PocketPC su un comodino e una Linux box o due nel seminterrato, tutti collegati in rete con un router generico. Per tutti i dispositivi in questa configurazione familiare familiare, o anche uno scenario con migliaia di utenti, Samba suite è una soluzione ideale per la condivisione di file e stampa.

Esistono diverse soluzioni di condivisione di file e di stampa multipiattaforma, ma Samba e il protocollo SMB / CIFS possono essere i più facili da implementare in un ambiente di rete domestico. Macchine Windows e Mac sono dotati della funzionalità per lavorare con Samba fuori dalla scatola, e si dovrebbe solo bisogno di installare un singolo pacchetto Samba per le macchine Linux. GNOME e KDE offrono funzionalità client Samba integrate nei loro gestori di file predefiniti, Nautilus e Konqueror, rispettivamente.

Ci concentreremo sulla configurazione e l’utilizzo di Samba per la condivisione di file e stampa in una tipica rete domestica con macchine Linux e Windows. Puoi scegliere tra diverse GUI di configurazione Samba, ma seguiremo la vecchia strada e indirizzeremo i nostri editor di testo a smb.conf. Il file di configurazione si trova comunemente in / etc / samba / smb.conf o / usr / local / samba / lib / smb.conf. Si noti che è necessario essere root per modificare questi, o utilizzare sudo.

Samba funzionerà su quasi tutti i sistemi Unix-like e può essere trovato nei repository di quasi tutte le distribuzioni Linux. Iniziare utilizzando il gestore di pacchetti della distribuzione per assicurarsi che sia installato.

Configurazione di Samba

Samba è un pacchetto molto maturo e complesso, quindi il suo file di configurazione può essere lungo e complicato. Dovrai fidarti che la tua distribuzione ti abbia fornito una configurazione predefinita ragionevolmente valida e concentrarti sulla modifica di poche righe in smb.conf per assicurarsi che siano appropriati ai fini di una rete domestica. Se vuoi saperne di più su qualsiasi riga, consulta man smb.conf.

Ricorda che qualsiasi riga nel file di configurazione preceduta da un punto e virgola (;) o da un segno hash (#) è un commento e non verrà riconosciuta come impostazione attiva. Per attivare la linea, rimuovere il punto e virgola o l’hash. È una buona idea aggiungere i propri commenti preceduti da uno di questi caratteri in modo da ricordare la logica alla base della configurazione la prossima volta che carichi smb.conf.

La prima opzione da considerare è il livello di sicurezza di Samba. Questa riga apparirà nella sezione di smb.conf, dove viene eseguita tutta la configurazione a livello di Samba. Le altre sezioni, affrontate più avanti in questo articolo, riguardano specifici servizi Samba (risorse condivise). Il livello di sicurezza sarà probabilmente impostato sul valore user e sarà simile a questo:

security = user

Per una rete domestica, potresti considerare di impostarlo su share. La differenza principale è che con l’impostazioneuser ti verrà richiesto di accedere al server Samba prima di poter sfogliare le sue risorse. Questa è una precauzione saggia su reti non attendibili, ma sarà scomodo quando si utilizzano le risorse che si desidera tutta la famiglia di avere accesso a, come ad esempio una stampante. Conshare abilitato, è comunque possibile richiedere agli utenti di autenticarsi con una password per accedere a determinate risorse.

Mentre ancora nella sezione, passiamo alle stampanti. Se si utilizza il Common UNIX Printing System (CUPS) (che la maggior parte delle distribuzioni di default), l’unica cosa che dovete fare per avere Samba riconoscere le stampanti è impostare le seguenti righe di conseguenza:


printing = cups
printcap name = cups

Poiché è possibile configurare queste stampanti (e forse altre risorse) per essere accessibili senza autenticazione dell’utente, è molto importante limitare l’accesso solo agli host noti e attendibili, ovvero ai computer della propria famiglia. Consultare il manuale del router per istruzioni sull’assegnazione di indirizzi IP specifici a ciascun computer della rete domestica. Una volta che hai un elenco di host attendibili, inseriscili nelle seguenti righe nella sezione :


hosts allow = computer1 computer2 computerN
hosts deny = ALL

Sebbene sia stato specificato che gli hostALL devono essere negati, qualsiasi host elencato nella riga hosts allow avrà comunque accesso. Il formato degli indirizzi IP assegnati a ciascun computer dal router varierà. Ad esempio, se alle macchine sulla rete locale vengono assegnati indirizzi del formato 192.168.0.x, le seguenti righe limiteranno l’accesso a Samba agli host locali:

hosts allow = 192.168.0.
hosts deny = ALL

Si noti che la cifra finale dell’indirizzo IP è stata omessa sulla riga hosts allow. Specifica che qualsiasi indirizzo IP in tale intervallo è consentito. Per una maggiore sicurezza contro l’accesso esterno, esaminare il blocco delle porte Samba con un firewall.

Condivisione di directory e stampanti

È ora di andare oltre e configurare specifiche risorse condivise. Inizia con la sezione. Per impostazione predefinita, la distribuzione potrebbe avere questa sezione configurata per consentire agli utenti di accedere alla propria directory home sulla macchina che esegue il server Samba.

Se hai impostato security = share, questa funzione potrebbe non funzionare come previsto e agli utenti potrebbero essere presentate le directory home senza effettuare il login. Se sei l’unico con una directory home sulla macchina che esegue comunque il server Samba, che è probabilmente in un ambiente di rete domestica, è consigliabile rimuovere o commentare (usando segni di hash o punti e virgola) la sezione e aggiungere qualsiasi directory utile come risorse condivise individualmente in seguito.

Ora puoi iniziare a condividere directory specifiche. Utilizzare questo come modello per una cartella condivisa pubblicamente per la quale non è necessario che gli utenti siano autenticati:


path = /location/of/directory
guest ok = yes
browseable = yes
read only = no

Share Name è qualunque titolo tu scelga (per il client che accede al tuo server, questo apparirà come il nome della directory condivisa). La rigaguest ok = yes è ciò che specifica questa condivisione come accessibile pubblicamente. La rigabrowseable = yes renderà la condivisione disponibile a tutti gli utenti. Impostare browseable = no per forzare gli utenti a digitare manualmente il nome della condivisione per accedervi. Naturalmente, è possibile impostare read only = yes per limitare gli utenti da apportare modifiche alla directory in remoto.

Utilizzare questo come modello per le condivisioni private che gli utenti devono inserire una password per accedere:


path = /location/of/directory
valid users = user
read only = yes
browseable = no

Qui,user è il nome utente sulla macchina che esegue il server Samba della persona con privilegi di accesso alla condivisione. Utilizzare questi due modelli per aggiungere condivisioni per tutti i file a cui gli utenti potrebbero voler accedere dal computer server.

Il tuo server dovrebbe essere completamente configurato ora. Con ciò che hai aggiunto ai valori predefiniti forniti dalla tua distribuzione, il tuo smb completato.conf dovrebbe assomigliare a questo:

security = shareworkgroup = HOMEserver string = %h serverlog file = /var/log/samba/log.%mmax log size = 1000dns proxy = Nohosts allow = 192.168.0.hosts deny = ALLprinting = cupsprintcap name = cupspath = /var/spool/sambaprintable = Yesbrowseable = Nopath = /var/lib/samba/printerspath = /Public/Filesguest ok = yesread only = nobrowseable = yespath = /private/files/valid users = meread only = yesbrowseable = no

Prima di lasciare la macchina server hai un paio di faccende più veloci. Per prima cosa, inserisci tutti gli utenti che accederanno al server Samba nel seguente comando:

smbpasswd -a user

Ti verrà richiesto di inserire una password Samba per ogni utente. È possibile modificare la password in qualsiasi momento accedendo come utente desiderato ed eseguendo smbpasswd. Ora riavvia il tuo server Samba usando questo comando:

/etc/init.d/samba restart

Accesso alle condivisioni Samba dai client Windows

Vai su una macchina Windows per provare la nuova configurazione. Il nuovo server dovrebbe apparire in Windows ‘ My Network Places (cercare il collegamento sul desktop, per impostazione predefinita). In alternativa, aprire il menu Start e fare clic su “Esegui Run”, quindi immettere:

\server

Sostituendo server con il nome o l’indirizzo IP della macchina che esegue il server Samba. Si dovrebbe aprire una finestra di Esplora risorse con le condivisioni sfogliabili dal server. Se hai fatto una condivisione non sfogliabile, accedi usando questo link:

\servershare name

È facile rendere le directory condivise più accessibili. In Windows XP, fare clic destro sulla condivisione in Explorer e scegliere “Mappa unità di rete…” Si sarà in grado di assegnare loro una lettera di unità, come Z:, in modo che possano essere facilmente trovati in Risorse del computer, anche dopo un riavvio.

Nel mio test su Windows XP con il livello di sicurezza impostato sushare, le stampanti vengono automaticamente rilevate e disponibili per l’uso dalla macchina Windows. Conuser livello di sicurezza impostato, è stato necessario accedere al server in una finestra di Windows Explorer prima di provare a stampare. La tua esperienza su altre versioni di Windows può variare.

Accesso alle condivisioni SMB/CIFS da altre macchine Linux

Le condivisioni Samba e Windows sono facilmente accessibili dai file manager predefiniti di Gnome e KDE. Inizieremo con l’accesso alle condivisioni da Nautilus in Gnome. Apri Nautilus e vai su File – > Connetti al server.

Scegli “Condivisione Windows” dalla casella di riepilogo e inserisci il nome del server o l’indirizzo IP del tuo server Samba. È inoltre possibile fare clic sul pulsante ” Sfoglia rete “e cercare nella directory” Rete Windows” per cercare manualmente il server. Fai clic su “Connetti” e si aprirà una finestra Nautilus con le risorse navigabili del tuo server Samba.

Accedere alle condivisioni Samba con Konqueror è altrettanto semplice. Per cercare il tuo server, inserisci l’URL remote: / in Konqueror. Per l’accesso diretto, digitare l’URL del server direttamente in questo formato:

smb://user@server/share

Si noti che user e share sono criteri opzionali.

Configurare le stampanti su Samba è altrettanto semplice in entrambi questi ambienti desktop. In Gnome, andare su System- > Amministrazione – > Stampa. Nell’applicazione di configurazione della stampante, selezionare Printer – > Aggiungi stampante. Ti verrà richiesta la tua password. Nella procedura guidata Aggiungi stampante, selezionare ” Stampante di rete “e quindi” Stampante Windows SMB” dalla casella di riepilogo. Verrà richiesto un nome utente e una password sul server Samba. Identificare l’host e la stampante sul server Samba, quindi passare alla schermata successiva. Selezionare il modello di stampante, quindi fare clic su Applica.

Per fare lo stesso in KDE, apri il centro di configurazione lanciando il comando kcontrol. Passare al modulo Stampanti e andare su Aggiungi – > Aggiungi stampante / classe In Nella finestra di dialogo risultante, fare clic su Avanti e quindi selezionare ” SMB shared printer (Windows).”Fare nuovamente clic su Avanti e configurare il nome utente e la password di un “account normale”, se si utilizza user livello di sicurezza. Fare clic su Avanti un’altra volta e quindi eseguire la scansione per cercare il server Samba.

In alternativa, immettere manualmente i dettagli del server. Nella schermata successiva, selezionare il modello di stampante dall’elenco. Fare clic attraverso le prossime schermate e dare la stampante in rete un titolo per finire.

Risoluzione dei problemi

Se hai riscontrato problemi a far funzionare una qualsiasi di queste funzionalità, vai alla lista di controllo per la risoluzione dei problemi di Samba. Un rapido trucco preso in prestito da quel documento per testare il file di configurazione di Samba per errori evidenti è eseguire il seguente comando:

testparm smb.conf

Di nuovo, il percorso esatto del tuo smb.conf può variare a seconda della distribuzione.

Abbiamo solo esplorato funzionalità di base Samba qui, su misura per una rete domestica. Scenari di utilizzo più estremi sono affrontati in dettaglio nella guida Samba by example.