Samba, noto anche come "Server Message Block", è un protocollo di file system Internet comune utilizzato per condividere file, directory e servizi di stampa su una rete su Linux. Ti consente di concedere autorizzazioni di lettura, scrittura e accesso anonimo su una directory condivisa. È estremamente utile per coloro che utilizzano entrambi i sistemi Windows e Linux sulla propria rete.
In questo post spiegheremo come installare e utilizzare Samba per condividere file e directory su Ubuntu 20.04.
Prerequisiti
- Un nuovo server Ubuntu 20.04 sulla piattaforma Atlantic.Net Cloud
- Una password di root configurata sul tuo server
Fase 1:crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 20.04 come sistema operativo con almeno 2GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al tuo server Ubuntu 20.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.
apt-get update -y
Fase 2 – Installa Samba Server
apt-get install samba samba-common-bin acl -y
Una volta installati, avvia i servizi Samba e abilitali all'avvio al riavvio del sistema:
systemctl start smbd nmbd systemctl enable smbd nmbd
Puoi controllare la versione installata di Samba con il seguente comando:
smbd --version
Uscita:
Version 4.11.6-Ubuntu
Fase 3:crea una condivisione privata con Samba
In questa sezione, ti mostreremo come creare una condivisione privata utilizzando Samba in modo che solo gli utenti autenticati possano accedere alla condivisione.
Per farlo, modifica il file di configurazione principale di Samba:
nano /etc/samba/smb.conf
Quindi, aggiungi le seguenti righe alla fine del file:
[Private] comment = private share path = /data/private/ browseable = yes guest ok = no writable = yes valid users = @samba
Salva e chiudi il file, quindi crea un nuovo utente con il seguente comando:
adduser user1
Dovresti vedere il seguente output:
Adding user `user1' ... Adding new group `user1' (1000) ... Adding new user `user1' (1000) with group `user1' ... Creating home directory `/home/user1' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for user1 Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
Quindi, imposta una password Samba con il seguente comando:
smbpasswd -a user1
Dovresti vedere il seguente output:
New SMB password: Retype new SMB password: Added user user1.
Quindi, crea un gruppo Samba con il seguente comando:
groupadd samba
Quindi, aggiungi utente1 al gruppo samba:
gpasswd -a user1 samba
Quindi, crea una cartella condivisa che hai specificato nel file smb.conf:
mkdir -p /data/private touch /data/private/file1
Quindi, fornisci i permessi di lettura e scrittura alla condivisione Samba:
setfacl -R -m "g:samba:rwx" /data/private
Quindi, controlla il file di configurazione di Samba per eventuali errori con il seguente comando:
testparm
Quindi, riavvia il servizio Samba per applicare le modifiche:
systemctl restart smbd nmbd
Fase 4:crea una condivisione pubblica con Samba
In questa sezione, ti mostreremo come creare una condivisione pubblica con Samba in modo che tutti possano accedere alla condivisione pubblica senza fornire nome utente e password.
Per creare una condivisione pubblica, modifica il file di configurazione principale di Samba:
nano /etc/samba/smb.conf
Aggiungi le seguenti righe alla fine del file:
[Public] comment = public share path = /data/public/ browseable = yes writable = yes guest ok = yes
Salva e chiudi il file, quindi crea una directory pubblica:
mkdir -p /data/public/ touch /data/public/file2
Quindi, imposta le autorizzazioni appropriate sulla directory pubblica:
setfacl -R -m "u:nobody:rwx" /data/public
Quindi, riavvia il servizio Samba per applicare le modifiche:
systemctl restart smbd nmbd
Passaggio 5:accedi a Samba Share da Linux
Per accedere alla condivisione Samba, dovrai installare il client Samba sul sistema Linux. Puoi installarlo usando il seguente comando:
apt-get install smbclient cifs-utils -y
Quindi, esegui il seguente comando per accedere alla condivisione privata dal server Samba:
smbclient //samba-ip-address/private -U user1
Ti verrà chiesto di fornire una password per l'utente1:
Enter WORKGROUP\user1's password: Try "help" to get a list of possible commands.
Una volta connesso, esegui il seguente comando per elencare la condivisione Samba:
smb: \> list 0: server=69.87.221.84, share=private
Quindi, elenca tutti i file nella directory di condivisione privata:
smb: \> ls
Dovresti vedere il seguente output:
. D 0 Sun Jun 27 08:17:58 2021 .. D 0 Sun Jun 27 08:18:13 2021 file1 N 0 Sun Jun 27 08:17:58 2021 51538400 blocks of size 1024. 47348972 blocks available
Quindi, esci dalla shell Samba con il seguente comando:
smb: \> exit
Se vuoi connetterti alla condivisione pubblica, esegui il comando seguente:
smbclient //samba-ip-address/public
Basta premere Invio senza fornire alcuna password:
Enter WORKGROUP\root's password: Try "help" to get a list of possible commands. smb: \>
Quindi, esegui il comando seguente per elencare tutti i file nella condivisione pubblica:
smb: \> ls
Uscita:
. D 0 Sun Jun 27 08:18:17 2021 .. D 0 Sun Jun 27 08:18:13 2021 file2 N 0 Sun Jun 27 08:18:17 2021 51538400 blocks of size 1024. 47348972 blocks available
Passaggio 6:monta Samba Share su Linux
Samba consente inoltre di montare una directory condivisa sul sistema client in modo da poterla accedere e utilizzarla.
Innanzitutto, crea una directory sul sistema client in cui desideri montare la condivisione Samba:
mkdir /mount
Quindi, esegui il comando seguente per montare la directory di condivisione privata sul sistema client:
mount -t cifs -o username=user1 //samba-ip-address/private /mount
Ti verrà chiesto di fornire una password di utente1 per montare la directory:
Password for [email protected]//69.87.221.84/private: *********
Quindi, verifica la directory montata con il seguente comando:
df -h
Dovresti vedere la tua directory condivisa privata montata nella directory /mount:
Filesystem Size Used Avail Use% Mounted on udev 981M 0 981M 0% /dev tmpfs 199M 2.2M 197M 2% /run /dev/sda1 50G 1.9G 46G 4% / tmpfs 994M 0 994M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 994M 0 994M 0% /sys/fs/cgroup tmpfs 199M 0 199M 0% /run/user/0 //69.87.221.84/private 50G 4.0G 46G 9% /mount
Ora accedi alla condivisione Samba in locale usando il seguente comando:
ls /mount/
Dovresti vedere il seguente output:
file1
Conclusione
Nella guida sopra, hai imparato come installare Samba e usarlo per condividere file e directory tra sistemi Linux. Provalo con l'hosting VPS di Atlantic.Net!