Introduzione
Samba è una reimplementazione gratuita e open source del protocollo di condivisione file di rete SMB / CIFS che consente 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 Sambe e utenti.
Utenti:
- sadmin - Un utente amministrativo con accesso in lettura e scrittura a tutte le condivisioni.
- alice - Un utente normale con la propria condivisione di file privata.
Condivisioni:
- utenti : questa condivisione sarà accessibile con le autorizzazioni di lettura/scrittura di tutti gli utenti.
- alice - Questa condivisione sarà accessibile con le autorizzazioni di lettura/scrittura solo dagli utenti alice e sadmin.
Le condivisioni di file saranno accessibili da tutti i dispositivi della rete. Più avanti nel tutorial, forniremo anche istruzioni dettagliate su come connettersi al server Samba da client Linux, Windows e macOS.
Prerequisiti
Prima di iniziare, assicurarsi di aver effettuato l'accesso al sistema CentOS 7 come utente con privilegi sudo.
Se desideri installare Samba su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:
ssh root@IP_DEL_SERVER
Successivamente sarà necessario inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:
ssh nome_utente@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Installare Samba su CentOS 7
Samba è disponibile dai repository CentOS standard. 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 abilita l'avvio automatico all'avvio del sistema:
sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo systemctl enable nmb.service
Il servizio smbd
fornisce servizi di condivisione e stampa di file e ascolta sulle porte TCP 139 e 445. Il servizio nmbd
fornisce servizi di denominazione NetBIOS su IP ai client e ascolta sulla porta UDP 137.
Configurare il firewall
Ora che Samba è installato e in esecuzione sul tuo computer CentOS, dovrai configurare il firewall e aprire le porte necessarie. Per fare ciò, esegui i seguenti comandi:
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --zone=public --add-service=samba
Creare utenti Samba e struttura delle directory
Per facilitare la manutenibilità e la flessibilità anziché utilizzare le home directory standard (/home/user
), tutte le directory e i dati di Samba saranno posizionati nella directory /samba
.
Inizia creando la directory /samba
:
sudo mkdir /samba
Crea un nuovo gruppo chiamato sambashare
. Successivamente aggiungeremo tutti gli utenti Samba a questo gruppo.
sudo groupadd sambashare
Impostare la proprietà del gruppo della directory /samba
al gruppo sambashare
:
sudo chgrp sambashare /samba
Samba utilizza utenti Linux e sistema di permessi di gruppo ma ha un proprio meccanismo di autenticazione separato dall'autenticazione Linux standard. Creeremo gli utenti utilizzando il comando useradd
e quindi imposteremo la password dell'utente con l'utility smbpasswd
.
Come accennato nell'introduzione, creeremo un utente normale che avrà accesso alla sua condivisione di file privata e un account amministrativo con accesso in lettura e scrittura a tutte le condivisioni sul server Samba.
Creare l'utente Samba
Per creare un nuovo utente denominato alice
, utilizzare il comando seguente:
sudo useradd -M -d /samba/alice -s /usr/sbin/nologin -G sambashare alice
Le opzioni del comando useradd
hanno i seguenti significati:
-M
- non creare la home directory dell'utente. Creeremo manualmente questa directory.-d /samba/alice
- imposta la home directory dell'utente su/samba/alice
.-s /usr/sbin/nologin
- disabilita l'accesso alla shell per questo utente.-G sambashare
- aggiungi l'utente al grupposambashare
.
Crea la home directory dell'utente e imposta la proprietà della directory all'utente alice
e al gruppo sambashare
:
sudo mkdir /samba/alice
sudo chown alice:sambashare /samba/alice
Il comando seguente aggiungerà il bit setgid alla directory /samba/alice
in modo che i file appena creati in questa directory ereditino il gruppo della directory padre. In questo modo, indipendentemente dall'utente che crea un nuovo file, il file avrà il proprietario del gruppo di sambashare
. Ad esempio, se non si impostano le autorizzazioni della directory su 2770
e l'utente sadmin
crea un nuovo file, l'utente alice
non sarà in grado di leggere/scrivere su questo file.
sudo chmod 2770 /samba/alice
Aggiungi l'account utente alice
al database Samba impostando la password utente:
sudo smbpasswd -a alice
Ti verrà richiesto di inserire e confermare la password dell'utente.
New SMB password:
Retype new SMB password:
Added user alice.
Una volta impostata la password, abilita l'account Samba digitando:
sudo smbpasswd -e alice
Enabled user alice.
Per creare un altro utente, ripetere la stessa procedura utilizzata per la creazione dell'utente alice
.
Quindi, creiamo un utente e un gruppo sadmin
. Tutti i membri di questo gruppo avranno autorizzazioni amministrative. Successivamente, se si desidera concedere autorizzazioni amministrative a un altro utente, è sufficiente aggiungere tale utente al gruppo sadmin
.
Crea l'utente amministrativo digitando:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
Il comando sopra creerà anche un gruppo sadmin
e aggiungerà l'utente a entrambi gruppi sadmin
e sambashare
.
Imposta una password e abilita l'utente:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
Quindi, crea la directory Users
di condivisione:
sudo mkdir /samba/users
Impostare la proprietà della directory su utente sadmin
e gruppo sambashare
:
sudo chown sadmin:sambashare /samba/users
Questa directory sarà accessibile a 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
Configurare le condivisioni Samba
Apri il file di configurazione di Samba e aggiungi le sezioni necessarie per il corretto funzionamento.
In questo tutorial useremo l'editor nano. Sei libero di utilizzare qualsiasi altro editor, come Vim, installato di default su CentOS.
sudo yum install nano
Aprire il seguente file di configurazione:
sudo nano /etc/samba/smb.conf
Aggiungi le seguenti sezioni:
[users]
path = /samba/users
browseable = yes
read only = no
force create mode = 0660
force directory mode = 2770
valid users = @sambashare @sadmin
[alice]
path = /samba/alice
browseable = no
read only = no
force create mode = 0660
force directory mode = 2770
valid users = alice @sadmin
Le opzioni hanno i seguenti significati:
[users]
e[alice]
- I nomi delle condivisioni che userete durante l'accesso.path
- Il percorso per la condivisione.browseable
- Se la condivisione deve essere elencata nell'elenco delle condivisioni disponibili. Impostando suno
altri utenti non sarà possibile vedere la condivisione.read only
- Impostare se gli utenti specificati nell'elencovalid 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
- Un elenco di utenti e gruppi a cui è consentito accedere alla condivisione. I gruppi sono preceduti dal simbolo@
.
Per ulteriori informazioni sulle opzioni disponibili, consultare la pagina della documentazione del file di configurazione di Samba.
Una volta fatto, riavvia i servizi Samba con:
sudo systemctl restart smb.service
sudo systemctl restart nmb.service
Nelle sezioni seguenti, ti 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, utilizzando il file manager o montare la condivisione Samba.
Utilizzo del client smbclient
smbclient
è uno strumento che ti consente di accedere a Samba dalla riga di comando. Il pacchetto smbclient
non è preinstallato sulla maggior parte delle distribuzioni Linux, quindi sarà necessario installarlo con il gestore dei pacchetti di 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
Ad esempio, per connetterti a una condivisione denominata alice
su un server Samba con indirizzo IP 192.168.222.222
come utente alice
eseguiresti:
smbclient //192.168.222.222/alice -U alice
Ti verrà richiesto di inserire la password dell'utente.
Enter WORKGROUP\alice's password:
Dopo aver inserito la password, si accederà all'interfaccia della riga di comando di Samba.
Try "help" to get a list of possible commands.
smb: \>
Montare la condivisione Samba
Per montare una condivisione Samba su Linux prima devi installare il pacchetto cifs-utils
.
Su Ubuntu e Debian eseguire:
sudo apt install cifs-utils
In esecuzione CentOS e Fedora:
sudo yum install cifs-utils
Quindi, crea 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
Ad esempio per montare una condivisione denominata alice
su un server Samba con indirizzo IP 192.168.222.222
come utente alice
sul punto di montaggio /mnt/smbmount
dovresti eseguire:
sudo mount -t cifs -o username=alice //192.168.222.222/alice /mnt/smbmount
Ti verrà richiesto di inserire la password dell'utente.
Password for alice@//192.168.222.222/alice: ********
Utilizzando la GUI
File, il gestore file predefinito in Gnome ha un'opzione integrata per accedere alle condivisioni Samba.
- Apri file e fai clic su "Altre posizioni" nella barra laterale.
- In "Connetti al server", inserisci l'indirizzo della condivisione Samba nel seguente formato
smb://samba_hostname_or_server_ip/sharename
. - Fai clic su "Connetti" e apparirà la seguente schermata:
- Seleziona "Utente registrato", inserisci il nome utente e la password di Samba e fai clic su "Connetti".
- Verranno mostrati i file sul server Samba.
Connettersi a una condivisione Samba da macOS
In macOS, puoi accedere alle condivisioni Samba dalla riga di comando o utilizzando il Finder di file manager macOS predefinito. I seguenti passaggi mostrano come accedere alla condivisione utilizzando Finder.
- Apri "Finder", seleziona "Vai" e fai clic su "Connetti a".
- In "Connetti a", inserisci l'indirizzo della condivisione Samba nel seguente formato
smb://samba_hostname_or_server_ip/sharename
. - Fai clic su "Connetti" e apparirà la seguente schermata:
- Seleziona "Utente registrato", inserisci il nome utente e la password di Samba e fai clic su "Connetti".
- Verranno mostrati i file sul server Samba.
Connettersi a una condivisione Samba da Windows
Gli utenti Windows hanno anche un'opzione per connettersi alla condivisione Samba sia dalla riga di comando che dalla GUI. I passaggi seguenti mostrano come accedere alla condivisione utilizzando Esplora file di Windows.
- Aprire Esplora file e nel riquadro di sinistra fare clic con il tasto destro su "Questo PC".
- Seleziona "Scegli un percorso di rete personalizzato", quindi fai clic su "Avanti".
- In "Indirizzo Internet o di rete", inserisci l'indirizzo della condivisione Samba nel seguente formato
\\samba_hostname_or_server_ip\sharename
. - Fai clic su "Avanti" e ti verrà chiesto di inserire le credenziali di accesso come mostrato di seguito:
- Nella finestra successiva, puoi digitare un nome personalizzato per il percorso di rete. Quello predefinito verrà prelevato dal server Samba.
- Fare clic su "Avanti" per passare all'ultima schermata della procedura guidata di configurazione della connessione.
- Fai clic su "Fine" per visualizzare i file sul server Samba.
Conclusione
In questo tutorial, hai imparato come installare un server Samba su CentOS 7 e come creare diversi tipi di utenti e condivisi. Ti abbiamo anche mostrato come connetterti al server Samba da dispositivi Linux, macOS e Windows.