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 can also act as a Windows domain controller. This is an outstanding tool for ensuring seamless integration of Linux servers and the office desktop machines still running 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

The package sets up a minimal configuration during the initial installation in /etc/samba/smb.conf by plainly copying /usr/share/samba/smb.conf. So you should really run dpkg-reconfigure samba-common to adapt it:
On first installation the only piece of required information is the name of the workgroup where the Samba server will belong (the answer is FALCOTNET in our case).
In case of a package update (from the old stable Debian version) or if the SMB server has already been configured to use a WINS server (wins server), the package also proposes identifying the WINS server from the information provided by the DHCP daemon. The Falcot Corp administrators rejected this option, since they intend to use the Samba server itself as the WINS server.

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

Indicates that Samba should act as a Netbios name server (WINS) for the local network. This option had been removed from the default configuration in Buster and must be added manually if desired.

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
Unmounting an SMB/CIFS share is done with the standard umount command.

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!