Come installare e configurare Samba su CentOS 7

Samba è una reimplementazione libera e open-source del protocollo di condivisione file di rete SMB/CIFS che permette agli utenti finali di accedere a file, stampanti e altre risorse condivise.

In questo tutorial, mostreremo come installare Samba su CentOS 7 e configurarlo come server autonomo per fornire la condivisione di file tra diversi sistemi operativi su una rete.

Creeremo le seguenti condivisioni e utenti Samba.

Utenti:

  • sadmin – Un utente amministrativo con accesso in lettura e scrittura a tutte le condivisioni.
  • josh – Un utente normale con la sua condivisione privata di file.

Condivisioni:

  • utenti – Questa condivisione sarà accessibile con permessi di lettura/scrittura da tutti gli utenti.
  • josh – Questa condivisione sarà accessibile con permessi di lettura/scrittura solo dagli utenti josh e sadmin.

Le condivisioni dei file saranno accessibili da tutti i dispositivi della tua rete. Più avanti nel tutorial, forniremo anche istruzioni dettagliate su come connettersi al server Samba da client Linux, Windows e macOS.

Prequisiti #

Prima di iniziare, assicuratevi di aver effettuato l’accesso al vostro sistema CentOS 7 come utente con privilegi sudo.

Installazione di Samba su CentOS #

Samba è disponibile nei repository standard di CentOS. Per installarlo sul tuo sistema CentOS esegui il seguente comando:

sudo yum install samba samba-client

Una volta completata l’installazione, avvia i servizi Samba e abilitali ad avviarsi automaticamente all’avvio del sistema:

sudo systemctl start smb.servicesudo systemctl start nmb.service
sudo systemctl enable smb.servicesudo systemctl enable nmb.service

Il servizio smbd fornisce servizi di condivisione file e stampa e ascolta le porte TCP 139 e 445. Il servizio nmbd fornisce servizi di denominazione NetBIOS su IP ai client e ascolta sulla porta UDP 137.

Configurazione del Firewall #

Ora che Samba è installato e funzionante sulla tua macchina CentOS, avrai bisogno di configurare il tuo firewall e aprire le porte necessarie. Per farlo, eseguite i seguenti comandi:

firewall-cmd --permanent --zone=public --add-service=sambafirewall-cmd --zone=public --add-service=samba

Creazione degli utenti e della struttura della directory di Samba #

Per una più facile manutenibilità e flessibilità invece di usare le directory home standard (/home/user) tutte le directory e i dati di Samba saranno situati nella directory /samba.

Iniziate creando la directory /samba:

sudo mkdir /samba

Create un nuovo gruppo chiamato sambashare. Più tardi aggiungeremo tutti gli utenti Samba a questo gruppo.

sudo groupadd sambashare 

Imposta la proprietà del gruppo della directory /samba a sambashare:

sudo chgrp sambashare /samba

Samba usa il sistema di autorizzazioni degli utenti e dei gruppi di Linux ma ha il suo meccanismo di autenticazione separato dall’autenticazione standard di Linux. Creeremo gli utenti usando lo strumento standard Linux useradd e poi imposteremo la password dell’utente con l’utilità smbpasswd.

Come abbiamo detto nell’introduzione, creeremo un utente regolare che avrà accesso alla sua condivisione privata di file e un account amministrativo con accesso in lettura e scrittura a tutte le condivisioni sul server Samba.

Creazione di utenti Samba #

Per creare un nuovo utente di nome josh, usate il seguente comando:

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

Le opzioni useradd hanno il seguente significato:

Crea la home directory dell’utente e imposta la proprietà della directory all’utente josh e al gruppo sambashare:

sudo mkdir /samba/joshsudo chown josh:sambashare /samba/josh

Il seguente comando aggiungerà il bit setgid alla directory /samba/josh in modo che i file appena creati in questa directory ereditino il gruppo della directory madre. In questo modo, non importa quale utente crei un nuovo file, il file avrà group-owner di sambashare. Per esempio, se non impostate i permessi della directory a 2770 e l’utente sadmin crea un nuovo file, l’utente josh non sarà in grado di leggere/scrivere su questo file.

sudo chmod 2770 /samba/josh

Aggiungi l’account utente josh al database Samba impostando la password utente:

sudo smbpasswd -a josh

Vi verrà richiesto di inserire e confermare la password utente.

New SMB password:Retype new SMB password:Added user josh.

Una volta impostata la password, abilitate l’account Samba digitando:

sudo smbpasswd -e josh
Enabled user josh.

Per creare un altro utente ripetete la stessa procedura della creazione dell’utente josh.

In seguito, creiamo un utente e un gruppo sadmin. Tutti i membri di questo gruppo avranno i permessi amministrativi. Più tardi, se volete concedere i permessi amministrativi ad un altro utente, aggiungetelo semplicemente al gruppo sadmin.

Create l’utente amministrativo digitando:

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

Il comando precedente creerà anche un gruppo sadmin e aggiungerà l’utente ad entrambi i gruppi sadmin e sambashare.

Imposta una password e abilita l’utente:

sudo smbpasswd -a sadminsudo smbpasswd -e sadmin

In seguito, crea la directory di condivisione Users:

sudo mkdir /samba/users

Imposta la proprietà della directory all’utente sadmin e al gruppo sambashare:

sudo chown sadmin:sambashare /samba/users

Questa directory sarà accessibile da tutti gli utenti autenticati. Il seguente comando configura l’accesso in scrittura/lettura ai membri del gruppo sambashare nella directory /samba/users:

sudo chmod 2770 /samba/users

Configurazione delle condivisioni Samba #

Apri il file di configurazione Samba e aggiungi le sezioni:

sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf

Le opzioni hanno i seguenti significati:

  • e – I nomi delle azioni che userete al momento del login.
  • path – Il percorso della condivisione.
  • browseable – Se la condivisione deve essere elencata nella lista delle azioni disponibili. Impostando su no gli altri utenti non saranno in grado di vedere la condivisione.
  • read only – Se gli utenti specificati nella lista valid users sono in grado di scrivere su questa condivisione.
  • force create mode – Imposta le autorizzazioni per i file appena creati in questa condivisione.
  • force directory mode – Imposta le autorizzazioni per le directory appena create in questa condivisione.
  • valid users – Una lista di utenti e gruppi che sono autorizzati ad accedere alla condivisione. I gruppi sono preceduti dal simbolo @.

Per maggiori informazioni sulle opzioni disponibili vedere la pagina di documentazione del file di configurazione di Samba.

Una volta fatto, riavviare i servizi Samba con:

sudo systemctl restart smb.servicesudo systemctl restart nmb.service

Nelle sezioni seguenti, vi mostreremo come connettersi a una condivisione Samba da client Linux, macOS e Windows.

Connettersi a una condivisione Samba da Linux #

Gli utenti Linux possono accedere alla condivisione samba dalla riga di comando, usando il file manager o montare la condivisione Samba.

Utilizzando il client smbclient #

smbclient è uno strumento che permette di accedere a Samba dalla riga di comando. Il pacchetto smbclient non è preinstallato sulla maggior parte delle distro Linux, quindi dovrai installarlo con il gestore dei pacchetti della tua distribuzione.

Per installare smbclient su Ubuntu e Debian eseguire:

sudo apt install smbclient

Per installare smbclient su CentOS e Fedora eseguire:

sudo yum install samba-client

La sintassi per accedere a una condivisione Samba è la seguente:

mbclient //samba_hostname_or_server_ip/share_name -U username

Per esempio, per connettersi a una condivisione chiamata josh su un server Samba con indirizzo IP 192.168.121.118 come utente josh si dovrebbe eseguire:

smbclient //192.168.121.118/josh -U josh

Vi verrà richiesto di inserire la password dell’utente.

Enter WORKGROUP\josh's password:

Una volta inserita la password sarete collegati all’interfaccia della linea di comando Samba.

Try "help" to get a list of possible commands.smb: \>

Montaggio della condivisione Samba #

Per montare una condivisione Samba su Linux è necessario installare il pacchetto cifs-utils.

Su Ubuntu e Debian eseguire:

sudo apt install cifs-utils

Su CentOS e Fedora eseguire:

sudo yum install cifs-utils

In seguito, creare un punto di montaggio:

sudo mkdir /mnt/smbmount

Montare la condivisione utilizzando il seguente comando:

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

Per esempio, per montare una quota chiamata josh su un server Samba con indirizzo IP 192.168.121.118 come utente josh sul punto di montaggio /mnt/smbmount, dovrete eseguire:

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

Vi verrà richiesto di inserire la password dell’utente.

Password for josh@//192.168.121.118/josh: ********

Utilizzando la GUI #

Files, il file manager predefinito in Gnome ha un’opzione integrata per accedere alle condivisioni Samba.

  1. Aprire Files e cliccare su “Altre posizioni” nella barra laterale.
  2. In “Connetti al server”, inserire l’indirizzo della condivisione Samba nel seguente formato smb://samba_hostname_or_server_ip/sharename.
  3. Clicca su “Connetti” e apparirà la seguente schermata:

  4. Seleziona “Utente Registrato”, inserisci il nome utente e la password Samba e clicca su “Connetti”.
  5. Vengono mostrati i file sul server Samba.

Collegamento a una condivisione Samba da macOS #

In macOS, puoi accedere alle condivisioni Samba sia dalla riga di comando che usando il file manager predefinito di macOS, Finder. I seguenti passi mostrano come accedere alla condivisione utilizzando il Finder.

  1. Aprire “Finder”, selezionare “Vai” e fare clic su “Connetti a”.
  2. In “Connetti a”, inserire l’indirizzo della condivisione Samba nel seguente formato smb://samba_hostname_or_server_ip/sharename.

  3. Clicca “Connetti” e apparirà la seguente schermata:

  4. Seleziona “Utente Registrato”, inserisci il nome utente e la password Samba e clicca “Connetti”.
  5. I file sul server Samba saranno mostrati.

Connettersi a una condivisione Samba da Windows #

Gli utenti Windows hanno anche la possibilità di connettersi alla condivisione Samba sia da linea di comando che da GUI. I passi seguenti mostrano come accedere alla condivisione usando Windows File Explorer.

  1. Aprire File Explorer e nel pannello di sinistra cliccare con il tasto destro su “Questo PC”.
  2. Selezionare “Scegliere una posizione di rete personalizzata” e poi cliccare “Avanti”.
  3. In “Internet o indirizzo di rete”, inserire l’indirizzo della condivisione Samba nel seguente formato \samba_hostname_or_server_ip\sharename.

  4. Clicca “Avanti” e ti verrà richiesto di inserire le credenziali di accesso come mostrato di seguito:

  5. Nella finestra successiva, puoi digitare un nome personalizzato per la posizione di rete. Quello predefinito sarà scelto dal server Samba.

  6. Clicca “Avanti” per passare all’ultima schermata della procedura guidata di configurazione della connessione.
  7. Clicca “Fine” e i file sul server Samba saranno mostrati.

Conclusione #

In questo tutorial, hai imparato come installare un server Samba su CentOS 7 e creare diversi tipi di condivisioni e utenti. Ti abbiamo anche mostrato come connetterti al server Samba da dispositivi Linux, macOS e Windows.

.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.