Le condivisioni di file sono importanti per la collaborazione in qualsiasi rete. In questa serie di articoli, ti mostrerò come Samba può aiutarti a configurare e servire condivisioni di file su server Linux accessibili da client Linux e Windows.
Cos'è il Samba?
Prima di addentrarci e configurare le condivisioni di file, parliamo di cos'è Samba e cosa può fare per te.
Samba è una suite di applicazioni che implementa il protocollo Server Message Block (SMB). Molti sistemi operativi, incluso Microsoft Windows, utilizzano il protocollo SMB per la rete client-server. Samba consente alle macchine Linux/Unix di comunicare con le macchine Windows in una rete.
Samba è un software open source. Originariamente, Samba è stato sviluppato nel 1991 per la condivisione rapida e sicura di file e stampe per tutti i client che utilizzano il protocollo SMB. Da allora si è evoluto e ha aggiunto più capacità. Oggi Samba fornisce una suite di applicazioni che consentono un collegamento in rete e un'interoperabilità senza interruzioni tra *nix e Windows.
Installa i pacchetti Samba
In questo esempio, sto usando CentOS 8 con il nome host centos
come il mio server Samba con un indirizzo IP di 192.168.1.122. L'unico pacchetto che dovrai installare è Samba, ma vorrei includere altri strumenti client come samba-common
e samba-client
per testare le nostre condivisioni in seguito.
# yum install samba samba-client samba-common -y
Crea una directory da condividere e imposta i suoi permessi
Dopo aver installato i pacchetti richiesti sul server, creiamo una directory e forniamo le autorizzazioni richieste sulla directory. Crea una directory chiamata share
nella nostra directory principale. Puoi nominare questa directory come vuoi e darle i permessi di lettura, scrittura ed esecuzione. In questo esempio, faremo affidamento sulla configurazione di Samba per controllare l'accesso in lettura e scrittura alla directory condivisa.
# mkdir /share
# chmod -R 777 /share
Configura una condivisione
Ora che abbiamo installato i pacchetti necessari, è il momento di configurare la directory condivisa. Il file di configurazione si trova in /etc/samba
. Usando il tuo editor di testo preferito, aggiungi quanto segue a /etc/samba/smb.conf
. Lascia il resto del file di configurazione così com'è e questo dovrebbe essere utile per la nostra configurazione.
# vim /etc/samba/smb.conf
[myshare]
comment = My share
path = /share
read only = No
Ho creato una condivisione chiamata myshare
e ha fornito un percorso per la condivisione, che nel nostro caso si trova in /share
. Gli ho quindi dato i permessi di lettura/scrittura con read only = No
. Ci sono molti altri parametri di configurazione che puoi passare qui, ma per la nostra configurazione queste impostazioni sono buone.
Controlla la configurazione di Samba
Samba fornisce uno strumento per controllare il nostro file di configurazione. Possiamo verificare se il nostro file di configurazione contiene errori utilizzando il testparm
comando.
# testparm
Successivamente, dobbiamo creare un account utente Samba, in modo che Samba possa comunicare nelle sessioni Samba con condivisioni. Il smbpasswd
comando ha diverse funzioni a seconda se esegui il comando come root
o come utente standard. Se emetti smbpasswd
senza argomenti come non-root
utente, per impostazione predefinita smbpasswd
cambierà la password Samba dell'utente attualmente connesso. Quando esegui smbpasswd
comando come root
, potrai creare nuovi account Samba. Puoi creare un account Samba solo per account utente Linux esistenti.
# smbpasswd -a user
New SMB password:
Retype new SMB password:
Abbiamo bisogno di configurare SELinux su /share
directory in modo che il servizio Samba disponga delle autorizzazioni appropriate.
# semanage fcontext -a -t samba_share_t "/share(/.*)?"
# restorecon -R -v /share
Successivamente, dobbiamo abilitare e avviare smb
e nmb
servizi.
# systemctl enable smb
# systemctl start smb
#systemctl enable nmb
#systemctl start nmb
Se hai firewalld
in esecuzione sul tuo server, dobbiamo configurarlo per consentire il traffico Samba. Puoi farlo usando il firewall-cmd
comando. Non dimenticare di rendere permanenti queste modifiche e di ricaricare firewalld
.
Ora abbiamo i nostri servizi abilitati e avviati. Possiamo verificare se la condivisione è disponibile dal server utilizzando il smbclient
attrezzo. Questo è il motivo per cui ho installato gli strumenti del client Samba sulla macchina locale. Il comando utilizza la seguente sintassi:
smbclient -U
# smbclient -U user -L 192.168.1.122
Enter SAMBA\user's password:
Verifichiamo se possiamo accedere alla condivisione emettendo il seguente comando sul server:
# smbclient -U user //192.168.1.122/myshare
Enter SAMBA\user's password:
Try "help" to get a list of possible commands.
smb: \>
Concludi
Abbiamo installato e configurato il servizio di condivisione file Samba sul nostro server Linux. Siamo stati in grado di accedere a quelle condivisioni sulla macchina locale. Nel prossimo articolo, configureremo un client Linux e un client Windows 10 per accedere alla condivisione che abbiamo appena creato.
[ Vuoi saperne di più sull'amministrazione del sistema Linux? Segui un corso di amministrazione del sistema Red Hat. ]