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 da controller di dominio Windows. Questo è uno strumento eccezionale per garantire una perfetta integrazione tra i server Linux e le macchine desktop dell'ufficio che eseguono ancora 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

Durante l'installazione iniziale, il pacchetto imposta una configurazione minima in /etc/samba/smb.conf copiando semplicemente /usr/share/samba/smb.conf. Per questo motivo è consigliabile eseguire dpkg-reconfigure samba-common ed adattarlo:
Alla prima installazione l'unica informazione richiesta è il nome del gruppo di lavoro a cui apparterrà il server Samba (nel nostro caso la risposta è FALCOTNET ).
In caso di aggiornamento del pacchetto (dalla vecchia versione stabile di Debian) o se il server SMB è già stato configurato per utilizzare un server WINS (wins server), il pacchetto propone anche di identificare il server WINS dalle informazioni fornite dal demone DHCP. Gli amministratori di Falcot Corp non hanno impostato questa opzione, poiché intendono utilizzare il server Samba stesso 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 server" 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

   obey pam restrictions = yes

[...]

# "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 deve agire come server di nomi Netbios (WINS) per la rete locale. Quest'opzione è stata rimossa dalla configurazione predefinita in Buster e, se necessaria, dev'essere aggiunta manualmente.

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.21. 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!