Samba è un software gratuito e open source che può essere utilizzato per condividere file, cartelle e stampanti tra sistemi Linux e Windows. Viene anche utilizzato per l'autenticazione e l'autorizzazione, la risoluzione dei nomi e l'annuncio del servizio. Può essere eseguito su diversi sistemi operativi inclusi Linux, Unix, OpenVMS e molti altri.
In questo tutorial impareremo come installare Samba e configurarlo come server di condivisione autonomo su CentOS 8.
Prerequisiti
- Un server che esegue CentOS 8.
- Sul tuo server è configurata una password di root.
Installa il server Samba
Per impostazione predefinita, il pacchetto Samba è disponibile nel repository predefinito di CentOS. Puoi installarlo con il seguente comando:
dnf install samba samba-common samba-client -y
Dopo aver installato Samba, avvia il servizio SMB e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start smb
systemctl enable smb
Ora puoi verificare il servizio Samba con il seguente comando:
systemctl status smb
Dovresti ottenere il seguente output:
? smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-03-02 23:03:30 EST; 8s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 2072 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 25028) Memory: 33.8M CGroup: /system.slice/smb.service ??2072 /usr/sbin/smbd --foreground --no-process-group ??2074 /usr/sbin/smbd --foreground --no-process-group ??2075 /usr/sbin/smbd --foreground --no-process-group ??2076 /usr/sbin/smbd --foreground --no-process-group
Crea una condivisione pubblica con Samba
In questa sezione creeremo una condivisione pubblica con Samba in modo che tutti possano accedere alla directory di condivisione pubblica senza password.
Crea una directory di condivisione pubblica
Innanzitutto, crea una cartella condivisa denominata public e crea anche due file all'interno della directory pubblica:
mkdir -p /samba/share/public
touch /samba/share/public/file1.txt
touch /samba/share/public/file2.txt
Quindi, assegna le autorizzazioni e la proprietà necessarie con il seguente comando:
chmod -R 0755 /samba/share/
chmod -R 0755 /samba/share/public
chown -R nobody:nobody /samba/share
chown -R nobody:nobody /samba/share/public
Configura Samba
Successivamente, dovrai configurare Samba per condividere una directory pubblica.
Innanzitutto, crea una copia di backup del file /etc/samba/smb.conf con il seguente comando:
mv /etc/samba/smb.conf /etc/samba/smb.bak
Quindi, crea un nuovo file di configurazione di Samba:
nano /etc/samba/smb.conf
Aggiungi le seguenti righe:
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = samba-server security = user map to guest = bad user dns proxy = no [Public] path = /samba/share/public browsable =yes writable = yes guest ok = yes read only = no
Salva e chiudi il file. Quindi, riavvia il servizio Samba per applicare le modifiche:
systemctl restart smb
Quindi, testa la configurazione di Samba con il seguente comando:
testparm
Dovresti vedere il seguente output:
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] dns proxy = No map to guest = Bad User netbios name = SAMBA-SERVER security = USER server string = Samba Server %v idmap config * : backend = tdb [Public] guest ok = Yes path = /samba/share/public read only = No
Configura SELinux e Firewall
Quindi, imposta i valori booleani e di contesto di sicurezza SELinux appropriati sulla directory di condivisione con il seguente comando:
setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
semanage fcontext -a -t samba_share_t "/samba/share/public(/.*)?"restorecon /samba/share/public
Successivamente, tutto il servizio Samba tramite firewalld con il seguente comando:
firewall-cmd --add-service=samba --zone=public --permanent
firewall-cmd --reload
Accedi a Samba Share da Ubuntu Gnome
Per accedere alla condivisione Samba, vai sulla macchina remota, apri il file manager di Gnome e fai clic su Connetti a Server come mostrato di seguito:
Fornisci l'indirizzo IP del tuo server Samba e fai clic su Connetti pulsante. Dopo una connessione riuscita, dovresti vedere la condivisione Samba nella schermata seguente:
Ora, fai clic su Pubblico directory, dovresti vedere i tuoi file nella schermata seguente:
Accedi a Samba Share dalla riga di comando di Ubuntu
Puoi anche accedere alla condivisione Samba dalla riga di comando.
Innanzitutto, elenca tutte le condivisioni Samba disponibili con il seguente comando:
smbclient -L //45.58.38.51
Dovresti vedere il seguente output:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Sharename Type Comment --------- ---- ------- Public Disk IPC$ IPC IPC Service (Samba Server 4.10.4) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Server Comment --------- ------- Workgroup Master --------- -------
Puoi anche montare la condivisione Samba usando il protocollo cifs. Per farlo, installa il pacchetto cifs-utils con il seguente comando:
apt-get install cifs-utils -y
Quindi, monta la condivisione Samba nella directory /mnt con il seguente comando:
mount -t cifs //45.58.38.51/public /mnt/
Ti verrà chiesto di fornire la password come mostrato di seguito:
Password for [email protected]//45.58.38.51/public:
Basta premere Invio senza inserire alcuna password per montare la condivisione Samba:
Ora puoi accedere alla condivisione Samba nella directory /mnt:
ls /mnt/
Dovresti vedere il seguente output:
file1.txt file2.txt
Crea condivisione privata con Samba
In questa sezione creeremo una condivisione privata con Samba in modo che solo l'utente autenticato possa accedere alla directory di condivisione privata.
Crea utente e gruppo
Innanzitutto, crea un gruppo denominato private con il seguente comando:
groupadd private
Quindi, crea un nuovo utente chiamato privateuser e aggiungilo al gruppo privato:
useradd -g private privateuser
Quindi, imposta la password per l'utente con il seguente comando:
smbpasswd -a privateuser
Uscita:
New SMB password: Retype new SMB password: Added user privateuser.
Crea una directory di condivisione privata
Quindi, crea una cartella condivisa denominata private e crea anche due file all'interno della directory privata:
mkdir -p /samba/share/private
touch /samba/share/private/private1.txt
touch /samba/share/private/private2.txt
Quindi, assegna l'autorizzazione e la proprietà appropriate con il seguente comando:
chmod -R 0770 /samba/share/private
chown -R root:private /samba/share/private
Quindi, configura il contesto SELinux per la directory privata con il seguente comando:
semanage fcontext –at samba_share_t "/samba/share/private(/.*)?"
restorecon /samba/share/private
Configura Samba
Quindi, apri il file di configurazione di Samba e definisci la condivisione privata:
nano /etc/samba/smb.conf
Aggiungi le seguenti righe alla fine del file:
[Private] path = /samba/share/private valid users = @private guest ok = no writable = yes browsable = yes
Salva e chiudi il file, quindi riavvia il servizio Samba per applicare le modifiche:
systemctl restart smb
Quindi, controlla la configurazione di Samba con il seguente comando:
testparm
Dovresti vedere il seguente output:
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] dns proxy = No map to guest = Bad User netbios name = SAMBA-SERVER security = USER server string = Samba Server %v idmap config * : backend = tdb [Public] guest ok = Yes path = /samba/share/public read only = No [Private] path = /samba/share/private read only = No valid users = @private
Accedi a Samba Share dalla riga di comando di Ubuntu
Innanzitutto, accedi alla condivisione disponibile con il seguente comando:
smbclient -L //45.58.38.51
Dovresti vedere il seguente output:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Sharename Type Comment --------- ---- ------- Public Disk Private Disk IPC$ IPC IPC Service (Samba Server 4.10.4) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Server Comment --------- ------- Workgroup Master --------- -------
Quindi, connettiti al server Samba ed elenca la condivisione disponibile con il seguente comando:
smbclient //45.58.38.51/private -U privateuser
Ti verrà chiesto di fornire una password come mostrato di seguito:
Enter privateuser's password:
Digita la tua password e premi Invio per accedere alla shell Samba come mostrato di seguito:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] smb: \>
Ora, elenca la condivisione disponibile con il seguente comando:
smb: \> ls
Dovresti vedere il seguente output:
. D 0 Tue Mar 3 10:03:22 2020 .. D 0 Tue Mar 3 10:01:56 2020 private1.txt N 0 Tue Mar 3 10:03:17 2020 private2.txt N 0 Tue Mar 3 10:03:22 2020 51194 blocks of size 2097152. 49358 blocks available
Ora esci dalla shell Samba con il seguente comando:
smb: \>exit
Puoi anche montare la condivisione Samba nella directory /opt:
mount -t cifs -o user=privateuser //45.58.38.51/private /opt
Ti verrà chiesto di fornire una password come mostrato di seguito:
Password for [email protected]//45.58.38.51/private: *********
Fornisci la tua password e premi Invio per montare la condivisione Samba.
Ora puoi controllare la tua condivisione Samba nella directory /opt come mostrato di seguito:
ls /opt/
Uscita:
private1.txt private2.txt
Accedi a Samba Share da Ubuntu Gnome
Per accedere alla condivisione Samba, vai sulla macchina remota, apri il file manager di Gnome e fai clic su Connetti a Server come mostrato di seguito:
Fornisci l'indirizzo IP del tuo server Samba e fai clic su Connetti pulsante. Dopo una connessione riuscita, dovresti vedere la condivisione Samba nella schermata seguente:
Ora, fai clic su Privato directory, fornisci il tuo nome utente e password, quindi fai clic sul pulsante Connetti. Dovresti vedere i tuoi file nella schermata seguente:
Congratulazioni! hai installato e configurato correttamente il server Samba su CentOS 8.