Condividere cartelle con Samba

Published by gasolino on Friday, November 2, 2007 - 20:03:10 - Filed under Linux, Connettività, Reti

La strada semplice, in Ubuntu 7.04, è quella di usare l’interfaccia grafica “Sistema->Amministrazione->Cartelle condivise”. Questa strada è ottima se volete condividere singole cartelle, impostando anche i permessi di lettura/scrittura. Se però intendiamo creare una configurazione più “seria” ci si deve sporcare le mani con il file di configurazione /etc/samba/smb.conf, oppure con un interfaccia web come Swat.

Per le mie esigenze Swat è certamente esuberante, per cui mi limito a fare piccole modifiche al file di configurazione. Per prima cosa imposto il gruppo di lavoro e la descrizione del computer:

# Change this to the workgroup/NT-domain name your Samba server
# will part of
   workgroup = CASA
	
# server string is the equivalent of the NT Description field
   server string = Asus Notebook (Ubuntu)

Imposto il livello di sicurezza su share (di default è user) che per una rete domestica va benissimo. Questo permette a tutti nella rete locale di vedere la lista delle cartelle condivise prima di autenticarsi;

# "security = user" is always a good idea.
# This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
   security = share

Poi indico CUPS come server di stampa di questa macchina

# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
   load printers = yes
	
# CUPS printing.  See also the cupsaddsmb(8) manpage in the
# cupsys-client package.
   printing = cups
   printcap name = cups

Non resta che descrivere le condivisioni. Ad esempio la mia home è condivisa, ma non è visibile (browsable) e richiede l’identificazione, mentre la partizione dati è liberamente accessibile e scrivibile come una comune condivisione Windows:

[home]
comment = Home directories
path = %H
valid users = topolino, pippo, paperino
read only = No
create mask = 0664
directory mask = 0775
browsable = no
	
[Dati]
path = /media/Dati
comment = Partizione Dati
create mask = 0665
force group = plugdev
available = yes
browsable = yes
public = yes
writable = yes

In questo caso topolino, pippo e paperino dovranno avere un account valido sul server samba per accedere alla propria home, e dovranno essere aggiunti a samba con il comando

$ sudo smbpasswd -a topolino

che richiederà di creare una password samba per quell’utente.

Montare cartelle condivise con Cifs

Published by gasolino on Friday, November 2, 2007 - 20:00:51 - Filed under Linux, Connettività, Reti

Nautilus può tranquillamente navigare le cartelle condivise di una rete Microsoft® non appena si sia installato Ubuntu. Tuttavia in alcuni casi può essere utile montare localmente le cartelle remote, ad esempio per vedere un film con MPlayer, che al contrario di Totem non legge attraverso il protocollo smb.

Per montare cartelle di una rete Microsoft® esistono i filesystem smbfs e cifs. Il secondo, per la mia esperienza, funziona meglio del primo, ma necessita di alcune operazioni preliminari da compiere prima di essere utilizzato.

Installare i pacchetti smbfs (a cui si accompagna anche cifs) e winbind.

$ sudo apt-get install smbfs winbind

A questo punto si fa una piccola modifica ad un file di configurazione:

$ sudo vim /etc/nsswitch.conf

Cambiare la riga

hosts: files dns

in

hosts: files dns wins

Adesso si può riavviare la rete oppure riavviare il computer tout court. Si può montare una partizione con il comando:

$ sudo mount -t cifs \
-o rw,guest,iocharset=utf-8,allow_other \
//server/condivisione /punto/di/montaggio

sostituendo i nomi di server, condivisione e punto di montaggio con quelli che desiderate. In Ubuntu, se il punto di montaggio è dentro la cartella /media (es. /media/condivisione1) apparirà un’icona della condivisione sul desktop quando sarà montata, sempre che abbiate attivato l’opzione in Nautilus (da gconf-editor: apps -> nautilus -> desktop).