Samba este o reimplementare gratuită și open-source a protocolului de partajare a fișierelor de rețea SMB/CIFS care permite utilizatorilor finali să acceseze fișiere, imprimante și alte resurse partajate.
În acest tutorial, vom arăta cum se instalează Samba pe CentOS 7 și cum se configurează ca un server independent pentru a oferi partajarea fișierelor între diferite sisteme de operare într-o rețea.
Vom crea următoarele partaje și utilizatori Samba.
Utilizatori:
- sadmin – Un utilizator administrativ cu acces de citire și scriere la toate partajările.
- josh – Un utilizator obișnuit cu propriul său partaj de fișiere privat.
Parți:
- utilizatori – Acest partaj va fi accesibil cu permisiuni de citire/scriere de către toți utilizatorii.
- josh – Acest partaj va fi accesibil cu permisiuni de citire/scriere numai de către utilizatorii josh și sadmin.
Părțirile de fișiere vor fi accesibile de pe toate dispozitivele din rețea. Mai târziu în acest tutorial, vom oferi, de asemenea, instrucțiuni detaliate despre cum să vă conectați la serverul Samba de la clienții Linux, Windows și macOS.
Precondiții #
Înainte de a începe, asigurați-vă că sunteți conectat la sistemul CentOS 7 ca utilizator cu privilegii sudo .
Instalarea Samba pe CentOS #
Samba este disponibil din depozitele standard CentOS. Pentru a-l instala pe sistemul CentOS, rulați următoarea comandă:
sudo yum install samba samba-client
După ce instalarea este finalizată, porniți serviciile Samba și permiteți-le să pornească automat la pornirea sistemului:
sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo systemctl enable nmb.service
Serviciul smbd
oferă servicii de partajare a fișierelor și de imprimare și ascultă pe porturile TCP 139 și 445. Serviciul nmbd
oferă servicii de denumire NetBIOS peste IP pentru clienți și ascultă pe portul UDP 137.
Configurarea firewall-ului #
Acum că Samba este instalat și rulează pe mașina CentOS, va trebui să vă configurați firewall-ul și să deschideți porturile necesare. Pentru a face acest lucru, rulați următoarele comenzi:
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --zone=public --add-service=samba
Crearea utilizatorilor Samba și a structurii directoarelor #
Pentru o mai ușoară mentenabilitate și flexibilitate, în loc să folosiți directoarele home standard (/home/user
), toate directoarele și datele Samba vor fi localizate în directorul /samba
.
Începeți prin a crea directorul /samba
:
sudo mkdir /samba
Crearea unui nou grup numit sambashare
. Mai târziu vom adăuga toți utilizatorii Samba la acest grup.
sudo groupadd sambashare
Setați proprietatea grupului directorului /samba
la sambashare
:
sudo chgrp sambashare /samba
Samba folosește sistemul de permisiuni de utilizatori și grupuri Linux, dar are propriul mecanism de autentificare, separat de autentificarea standard Linux. Vom crea utilizatorii folosind instrumentul standard Linux useradd
și apoi vom seta parola utilizatorului cu ajutorul utilitarului smbpasswd
.
După cum am menționat în introducere, vom crea un utilizator obișnuit care va avea acces la partajul său privat de fișiere și un cont administrativ cu acces de citire și scriere la toate partajele de pe serverul Samba.
Crearea utilizatorilor Samba #
Pentru a crea un nou utilizator numit josh
, utilizați următoarea comandă:
sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh
Opțiunile useradd
au următoarele semnificații:
Crearea directorului personal al utilizatorului și setarea proprietății directorului la utilizatorul josh
și grupul sambashare
:
sudo mkdir /samba/josh
sudo chown josh:sambashare /samba/josh
Comenda următoare va adăuga bitul setgid la directorul /samba/josh
astfel încât fișierele nou create în acest director vor moșteni grupul directorului părinte. În acest fel, indiferent de utilizatorul care creează un fișier nou, fișierul va avea grupul-proprietar sambashare
. De exemplu, dacă nu setați permisiunile directorului la 2770
și utilizatorul sadmin
creează un fișier nou, utilizatorul josh
nu va putea citi/scrie în acest fișier.
sudo chmod 2770 /samba/josh
Adaugați contul de utilizator josh
la baza de date Samba prin setarea parolei utilizatorului:
sudo smbpasswd -a josh
Vă va fi solicitat să introduceți și să confirmați parola utilizatorului.
New SMB password:Retype new SMB password:Added user josh.
După ce parola este setată, activați contul Samba tastând:
sudo smbpasswd -e josh
Enabled user josh.
Pentru a crea un alt utilizator, repetați același proces ca la crearea utilizatorului josh
.
În continuare, să creăm un utilizator și grupul sadmin
. Toți membrii acestui grup vor avea permisiuni administrative. Mai târziu, dacă doriți să acordați permisiuni administrative unui alt utilizator, pur și simplu adăugați acel utilizator la grupul sadmin
.
Creați utilizatorul administrativ tastând:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
Comanda de mai sus va crea, de asemenea, un grup sadmin
și va adăuga utilizatorul la ambele grupuri sadmin
și sambashare
.
Setați o parolă și activați utilizatorul:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
În continuare, creați directorul de partajare Users
:
sudo mkdir /samba/users
Stabilește proprietatea directorului la utilizatorul sadmin
și grupul sambashare
:
sudo chown sadmin:sambashare /samba/users
Acest director va fi accesibil tuturor utilizatorilor autentificați. Următoarea comandă configurează accesul la scriere/citire pentru membrii grupului sambashare
în directorul /samba/users
:
sudo chmod 2770 /samba/users
Configurarea partajelor Samba #
Deschideți fișierul de configurare Samba și adăugați secțiunile:
sudo nano /etc/samba/smb.conf
Opțiunile au următoarele semnificații:
-
și
– Numele partajelor pe care le veți folosi la logare.
-
path
– Calea către partaj. -
browseable
– Dacă partajul trebuie să fie listat în lista de partaje disponibile. Prin setarea lano
alți utilizatori nu vor putea vedea share-ul. -
read only
– Dacă utilizatorii specificați în listavalid users
pot scrie în acest share. -
force create mode
– Setează permisiunile pentru fișierele nou create în acest share. -
force directory mode
– Stabilește permisiunile pentru directoarele nou create în acest share. -
valid users
– O listă de utilizatori și grupuri cărora li se permite accesul la acest share. Grupurile sunt prefixate cu simbolul@
.
Pentru mai multe informații despre opțiunile disponibile, consultați pagina de documentare a fișierului de configurare Samba.
După ce ați terminat, reporniți serviciile Samba cu:
sudo systemctl restart smb.service
sudo systemctl restart nmb.service
În secțiunile următoare, vă vom arăta cum să vă conectați la un share Samba de la clienți Linux, macOS și Windows.
Conectarea la un share Samba din Linux #
Utilizatorii Linux pot accesa share-ul samba din linia de comandă, folosind managerul de fișiere sau pot monta share-ul Samba.
Utilizarea clientului smbclient #
smbclient
este un instrument care vă permite să accesați Samba din linia de comandă. Pachetul smbclient
nu este preinstalat pe majoritatea distribuțiilor Linux, așa că va trebui să îl instalați cu managerul de pachete al distribuției dumneavoastră.
Pentru a instala smbclient
pe Ubuntu și Debian rulați:
sudo apt install smbclient
Pentru a instala smbclient
pe CentOS și Fedora rulați:
sudo yum install samba-client
Sintaxa pentru a accesa un share Samba este următoarea:
mbclient //samba_hostname_or_server_ip/share_name -U username
De exemplu, pentru a vă conecta la un share numit josh
pe un server Samba cu adresa IP 192.168.121.118
ca utilizator josh
, veți rula:
smbclient //192.168.121.118/josh -U josh
Vă va fi solicitat să introduceți parola utilizatorului.
Enter WORKGROUP\josh's password:
După ce introduceți parola veți fi autentificat în interfața liniei de comandă Samba.
Try "help" to get a list of possible commands.smb: \>
Montarea partajului Samba #
Pentru a monta un partaj Samba pe Linux trebuie mai întâi să instalați pachetul cifs-utils
.
Pe Ubuntu și Debian rulați:
sudo apt install cifs-utils
Pe CentOS și Fedora rulați:
sudo yum install cifs-utils
În continuare, creați un punct de montare:
sudo mkdir /mnt/smbmount
Montați share-ul folosind următoarea comandă:
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
De exemplu, pentru a monta un share numit josh
pe un server Samba cu adresa IP 192.168.121.118
ca utilizator josh
în punctul de montare /mnt/smbmount
, veți rula:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
Vă va fi solicitat să introduceți parola utilizatorului.
Password for josh@//192.168.121.118/josh: ********
Utilizând GUI #
Files, managerul de fișiere implicit din Gnome are o opțiune încorporată pentru a accesa partajările Samba.
- Deschideți Files și faceți clic pe „Other Locations” în bara laterală.
- În „Connect to Server”, introduceți adresa partajării Samba în următorul format
smb://samba_hostname_or_server_ip/sharename
. - Click pe „Connect” și va apărea următorul ecran:
- Selectați „Registered User” (Utilizator înregistrat), introduceți numele de utilizator și parola Samba și faceți clic pe „Connect” (Conectare).
- Se vor afișa fișierele de pe serverul Samba.
Conectarea la un partaj Samba din macOS #
În macOS, puteți accesa partajările Samba fie din linia de comandă, fie utilizând managerul de fișiere implicit Finder din macOS. Următorii pași arată cum să accesați partajul utilizând Finder.
- Deschideți „Finder”, selectați „Go” și faceți clic pe „Connect To”.
- În „Connect To”, introduceți adresa partajului Samba în următorul format
smb://samba_hostname_or_server_ip/sharename
.
- Clic pe „Connect” (Conectare) și va apărea următorul ecran:
- Selectați „Registered User” (Utilizator înregistrat), introduceți numele de utilizator și parola Samba și faceți clic pe „Connect” (Conectare).
- Arhivele de pe serverul Samba vor fi afișate.
Conectarea la un partaj Samba din Windows #
Utilizatorii Windows au, de asemenea, opțiunea de a se conecta la partajul Samba atât din linia de comandă, cât și din GUI. Pașii de mai jos arată cum să accesați share-ul folosind Windows File Explorer.
- Deschideți File Explorer și în panoul din stânga faceți clic dreapta pe „This PC”.
- Selectați „Choose a custom network location” (Alegeți o locație de rețea personalizată) și apoi faceți clic pe „Next” (Următorul).
- În „Internet or network address” (Adresa de internet sau de rețea), introduceți adresa share-ului Samba în următorul format
\samba_hostname_or_server_ip\sharename
.
- Clic pe „Next” (Următorul) și vi se va solicita să introduceți datele de autentificare, așa cum se arată mai jos:
- În fereastra următoare, puteți introduce un nume personalizat pentru locația de rețea. Cel implicit va fi preluat de serverul Samba.
- Click pe „Next” (Următorul) pentru a trece la ultimul ecran al expertului de configurare a conexiunii.
- Click pe „Finish” (Terminare) și vor fi afișate fișierele de pe serverul Samba.
Concluzie #
În acest tutorial, ați învățat cum să instalați un server Samba pe CentOS 7 și să creați diferite tipuri de partajare și utilizatori. De asemenea, v-am arătat cum să vă conectați la serverul Samba de pe dispozitive Linux, macOS și Windows.
.