Product SiteDocumentation Site

11.5. Configurare condivisioni Windows con Samba

Samba è una raccolta di strumenti per gestire il protocollo SMB (chiamato anche "CIFS") su Linux. Questo protocollo è utilizzato da Windows per le condivisioni di rete e le stampanti condivise.
Samba può anche agire come un controller di dominio Windows. Questo è un ottimo strumento per garantire l'integrazione dei server Linux con le macchine desktop dell'ufficio che continuano ad utilizzare Windows.

11.5.1. Server Samba

Il pacchetto samba contiene i due server principali di Samba 4, smbd e nmbd.

11.5.1.1. Configurare con debconf

Il pacchetto imposta una configurazione minimale durante l'installazione iniziale ma in realtà si dovrebbe eseguire dpkg-reconfigure samba-commonper adattarlo:
Il primo pezzo di informazioni richieste è il nome del gruppo di lavoro a cui apparterrà il server Samba (la risposta nel nostro caso è FALCOTNET).
Il pacchetto propone inoltre di identificare il server WINS attraverso le informazioni fornite dal demone DHCP. Gli amministratori della Falcot Corporation rifiutano questa opzione, poiché intendono utilizzare lo stesso server Samba come server WINS.

11.5.1.2. Configurazione manuale

11.5.1.2.1. Modifiche a smb.conf
Le necessità della Falcot richiedono che altre opzioni siano modificate nel file di configurazione /etc/samba/smb.conf. Gli estratti seguenti riassumono le modifiche applicate alla sezione [global].
[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = FALCOTNET

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
   wins support = yes 1

[...]

####### Authentication #######

# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller". 
#
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
   server role = standalone server

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server.
   security = user 2

[...]

1

Indica che Samba agirà come name server Netbios (WINS) per la rete locale.

2

Questo è il valore predefinito per questo parametro. Ad ogni modo, poiché è un punto chiave per la configurazione di Samba, è raccomandato indicare esplicitamente la propria scelta. Ogni utente deve autenticarsi prima di accedere a qualsiasi condivisione.
11.5.1.2.2. Aggiungere utenti
Ogni utente Samba necessita di un account sul server. L'account Unix dev'essere creato per primo, quindi l'utente dev'essere registrato nel database di Samba. La creazione dell'account Unix viene eseguita normalmente (utilizzando per esempio adduser).
Un utente esistente viene aggiunto al database di Samba con il comando smbpasswd -a utente: questo comando chiede di inserire la password in modalità interattiva.
Un utente può essere cancellato con il comando smbpasswd -x utente. Un account Samba può anche essere disabilitato temporaneamente con smbpasswd -d utente ed essere riabilitato in seguito con smbpasswd -e utente.

11.5.2. Client Samba

Le funzionalità client in Samba permettono ad una macchina Linux di accedere alle condivisioni Windows ed alle stampanti condivise. I programmi richiesti sono disponibili nei pacchetti cifs-utils e smbclient.

11.5.2.1. Il programma smbclient

Il programma smbclient interroga i server SMB. Accetta una opzione -U utente per connettersi al server attraverso una specifica identità. smbclient //server/condivisione accede alla condivisione con una modalità interattiva simile alla riga di comando dei client FTP. smbclient -L server elenca tutte le condivisioni disponibili (e visibili) sul server.

11.5.2.2. Montare le condivisioni Windows

Il comando mount permette di montare una condivisione Windows all'interno della gerarchia di un filesystem Linux (con l'aiuto di mount.cifs fornito da cifs-utils).

Esempio 11.24. Montare una condivisione Windows

mount -t cifs //arrakis/shared /shared \
      -o credentials=/etc/smb-credentials
Il file /etc/smb-credentials (che non dev'essere leggibile dagli utenti) ha il seguente formato:
username = utente
password = password
Altre opzioni possono essere specificate dalla riga di comando. La lista completa è disponibile nella pagina di manuale smbmount(1). Due opzioni in particolare possono risultare interessanti: uid e gid consentono di forzare l'assegnazione del proprietario ed del gruppo dei file disponibili al mount, così da non limitare l'accesso a root.
Il montaggio (mount) di una condivisione Windows può anche essere configurato in /etc/fstab:
//server/shared /shared cifs credentials=/etc/smb-credentials
Lo smontaggio di una condivisione SMB/CIFS è fatto con il comando standard umount.

11.5.2.3. Stampare su una stampante condivisa

CUPS è una soluzione elegante per stampare da una workstation Linux su di una stampante condivisa da una macchina Windows. Quando il smbclient è installato, CUPS consente l'installazione automatica delle stampanti Windows condivise.
Seguono i passi richiesti:
  • Accesso all'interfaccia di configurazione di CUPS: http://localhost:631/admin
  • Clicca su "Add Printer".
  • Scegliere la stampante, selezionare “Windows Printer via SAMBA”.
  • Inserire l'URI per la stampante di rete. Dovrebbe essere simile al seguente:
    smb://utente:password@server/stampante.
  • Inserire il nome che identificherà in modo univoco questa stampante. Quindi inserire la descrizione e la posizione della stampante. Queste sono le stringhe che verranno mostrate agli utenti finali per aiutarli ad identificare le stampanti.
  • Identificare il produttore/modello della stampante, ofornire direttamente un file di descrizione della stampante di lavoro (PPD).
Voilà, la stampante è operativa!