Jak zainstalować i skonfigurować Sambę w systemie CentOS 7

Samba jest wolną i otwartoźródłową reimplementacją sieciowego protokołu udostępniania plików SMB/CIFS, który umożliwia użytkownikom końcowym dostęp do plików, drukarek i innych współdzielonych zasobów.

W tym poradniku pokażemy, jak zainstalować Sambę w systemie CentOS 7 i skonfigurować ją jako samodzielny serwer, aby zapewnić udostępnianie plików w sieci między różnymi systemami operacyjnymi.

Utworzymy następujące udziały i użytkowników Samby.

Użytkownicy:

  • sadmin – Użytkownik administracyjny z dostępem do odczytu i zapisu do wszystkich udziałów.
  • josh – Zwykły użytkownik z własnym prywatnym udziałem w plikach.

Udziały:

  • użytkownicy – Ten udział będzie dostępny z uprawnieniami do odczytu/zapisu dla wszystkich użytkowników.
  • josh – Ten udział będzie dostępny z uprawnieniami do odczytu/zapisu tylko dla użytkowników josh i sadmin.

Udziały plików będą dostępne ze wszystkich urządzeń w sieci. W dalszej części samouczka przedstawimy również szczegółowe instrukcje dotyczące łączenia się z serwerem Samba z klientów systemów Linux, Windows i macOS.

Wymagania wstępne #

Zanim zaczniesz, upewnij się, że jesteś zalogowany do systemu CentOS 7 jako użytkownik z uprawnieniami sudo .

Instalowanie Samby w systemie CentOS #

Samba jest dostępna w standardowych repozytoriach CentOS. Aby zainstalować ją w systemie CentOS, wykonaj następujące polecenie:

sudo yum install samba samba-client

Po zakończeniu instalacji uruchom usługi Samby i włącz ich automatyczne uruchamianie przy starcie systemu:

sudo systemctl start smb.servicesudo systemctl start nmb.service
sudo systemctl enable smb.servicesudo systemctl enable nmb.service

Usługa smbd zapewnia usługi udostępniania plików i drukowania oraz nasłuchuje na portach TCP 139 i 445. Usługa nmbd zapewnia klientom usługi nazewnictwa NetBIOS over IP i nasłuchuje na porcie UDP 137.

Konfigurowanie zapory sieciowej #

Teraz, gdy Samba jest zainstalowana i działa na maszynie CentOS, musisz skonfigurować zaporę sieciową i otworzyć niezbędne porty. Aby to zrobić, wykonaj następujące polecenia:

firewall-cmd --permanent --zone=public --add-service=sambafirewall-cmd --zone=public --add-service=samba

Tworzenie użytkowników Samby i struktury katalogów #

Dla łatwiejszego utrzymania i elastyczności zamiast używać standardowych katalogów domowych (/home/user) wszystkie katalogi i dane Samby będą znajdować się w katalogu /samba.

Zacznij od utworzenia katalogu /samba:

sudo mkdir /samba

Utwórz nową grupę o nazwie sambashare. Później dodamy do tej grupy wszystkich użytkowników Samby.

sudo groupadd sambashare 

Set the /samba directory group ownership to sambashare:

sudo chgrp sambashare /samba

Samba używa linuksowego systemu uprawnień użytkowników i grup, ale ma swój własny mechanizm uwierzytelniania odrębny od standardowego uwierzytelniania linuksowego. Utworzymy użytkowników za pomocą standardowego narzędzia linuksowego useradd, a następnie ustawimy hasło użytkownika za pomocą narzędzia smbpasswd.

Jak wspomnieliśmy we wstępie, utworzymy zwykłego użytkownika, który będzie miał dostęp do swojego prywatnego udziału w plikach, oraz jedno konto administracyjne z dostępem do odczytu i zapisu do wszystkich udziałów na serwerze Samby.

Tworzenie użytkowników Samby #

Aby utworzyć nowego użytkownika o nazwie josh, użyj następującego polecenia:

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

Opcje useradd mają następujące znaczenie:

Utwórz katalog domowy użytkownika i ustaw własność katalogu na użytkownika josh i grupę sambashare:

sudo mkdir /samba/joshsudo chown josh:sambashare /samba/josh

Poniższe polecenie doda bit setgid do katalogu /samba/josh, dzięki czemu nowo utworzone pliki w tym katalogu będą dziedziczyły grupę katalogu nadrzędnego. W ten sposób, bez względu na to, który użytkownik utworzy nowy plik, będzie on miał grupę-właściciela sambashare. Na przykład, jeśli nie ustawisz uprawnień katalogu na 2770 i użytkownik sadmin utworzy nowy plik, użytkownik josh nie będzie mógł czytać/zapisywać do tego pliku.

sudo chmod 2770 /samba/josh

Dodaj konto użytkownika josh do bazy danych Samby, ustawiając hasło użytkownika:

sudo smbpasswd -a josh

Zostaniesz poproszony o wprowadzenie i potwierdzenie hasła użytkownika.

New SMB password:Retype new SMB password:Added user josh.

Po ustawieniu hasła włącz konto Samby, wpisując:

sudo smbpasswd -e josh
Enabled user josh.

Aby utworzyć kolejnego użytkownika, powtórz ten sam proces, co przy tworzeniu użytkownika josh.

Następnie utwórzmy użytkownika i grupę sadmin. Wszyscy członkowie tej grupy będą mieli uprawnienia administracyjne. Później, jeśli chcesz przyznać uprawnienia administracyjne innemu użytkownikowi, po prostu dodaj tego użytkownika do grupy sadmin.

Utwórz użytkownika administracyjnego, wpisując:

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

Powyższe polecenie utworzy również grupę sadmin i doda użytkownika do obu grup sadmin i sambashare.

Ustaw hasło i włącz użytkownika:

sudo smbpasswd -a sadminsudo smbpasswd -e sadmin

Następnie utwórz katalog współdzielony Users:

sudo mkdir /samba/users

Ustaw własność katalogu użytkownikowi sadmin i grupie sambashare:

sudo chown sadmin:sambashare /samba/users

Ten katalog będzie dostępny dla wszystkich uwierzytelnionych użytkowników. Poniższe polecenie konfiguruje dostęp do zapisu/odczytu dla członków grupy sambashare w katalogu /samba/users:

sudo chmod 2770 /samba/users

Konfigurowanie udziałów Samby #

Otwórz plik konfiguracyjny Samby i dołącz sekcje:

sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf

Opcje te mają następujące znaczenie:

  • i – Nazwy udziałów, które będą używane podczas logowania.
  • path – Ścieżka do udziału.
  • browseable – Czy udział powinien znajdować się na liście dostępnych udziałów. Ustawiając na no inni użytkownicy nie będą mogli zobaczyć tego udziału.
  • read only – Czy użytkownicy określeni na liście valid users mogą pisać do tego udziału.
  • force create mode – Ustawia uprawnienia dla nowo utworzonych plików w tym udziale.
  • force directory mode – Ustawia uprawnienia dla nowo utworzonych katalogów w tym udziale.
  • valid users – Lista użytkowników i grup, które mają dostęp do udziału. Grupy są poprzedzone symbolem @.

Więcej informacji na temat dostępnych opcji można znaleźć na stronie dokumentacji pliku konfiguracyjnego Samby.

Po wykonaniu tych czynności należy ponownie uruchomić usługi Samby za pomocą:

sudo systemctl restart smb.servicesudo systemctl restart nmb.service

W kolejnych rozdziałach pokażemy, jak połączyć się z udziałem Samby z poziomu klientów systemów Linux, macOS i Windows.

Podłączanie do udziału Samba z systemu Linux #

Użytkownicy systemu Linux mogą uzyskać dostęp do udziału Samba z wiersza poleceń, za pomocą menedżera plików lub zamontować udział Samba.

Używanie klienta smbclient #

smbclient to narzędzie, które umożliwia dostęp do Samba z wiersza poleceń. Pakiet smbclient nie jest preinstalowany w większości dystrybucji Linuksa, więc będziesz musiał zainstalować go za pomocą menedżera pakietów swojej dystrybucji.

Aby zainstalować smbclient na Ubuntu i Debianie, uruchom:

sudo apt install smbclient

Aby zainstalować smbclient na CentOS i Fedorze, uruchom:

sudo yum install samba-client

Składnia dostępu do udziału Samby jest następująca:

mbclient //samba_hostname_or_server_ip/share_name -U username

Na przykład, aby połączyć się z udziałem o nazwie josh na serwerze Samba o adresie IP 192.168.121.118 jako użytkownik josh, należy uruchomić:

smbclient //192.168.121.118/josh -U josh

Zostaniesz poproszony o podanie hasła użytkownika.

Enter WORKGROUP\josh's password:

Po wprowadzeniu hasła zostaniesz zalogowany do interfejsu wiersza poleceń Samby.

Try "help" to get a list of possible commands.smb: \>

Montowanie udziału Samby #

Aby zamontować udział Samby w systemie Linux, musisz najpierw zainstalować pakiet cifs-utils.

Na Ubuntu i Debianie uruchom:

sudo apt install cifs-utils

Na CentOS i Fedorze uruchom:

sudo yum install cifs-utils

Następnie utwórz punkt montowania:

sudo mkdir /mnt/smbmount

Zamontuj udział, używając następującego polecenia:

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

Na przykład, aby zamontować udział o nazwie josh na serwerze Samba o adresie IP 192.168.121.118 jako użytkownik josh do punktu montowania /mnt/smbmount, należy uruchomić:

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

Wtedy zostaniesz poproszony o podanie hasła użytkownika.

Password for josh@//192.168.121.118/josh: ********

Użycie GUI #

Files, domyślny menedżer plików w Gnome ma wbudowaną opcję dostępu do udziałów Samby.

  1. Otwórz Files i kliknij na „Other Locations” na pasku bocznym.
  2. W „Connect to Server”, wprowadź adres udziału Samby w następującym formacie smb://samba_hostname_or_server_ip/sharename.
  3. Kliknij „Połącz” i pojawi się następujący ekran:

  4. Wybierz „Zarejestrowany użytkownik”, wprowadź nazwę użytkownika i hasło Samby i kliknij „Połącz”.
  5. Pokażą się pliki na serwerze Samby.

Podłączanie do udziału Samby z macOS #

W systemie macOS dostęp do udziałów Samby można uzyskać z wiersza poleceń lub za pomocą domyślnego menedżera plików macOS Finder. Poniższe kroki pokazują, jak uzyskać dostęp do udziału za pomocą Findera.

  1. Otwórz „Findera”, wybierz „Go” i kliknij „Connect To”.
  2. W „Connect To” wprowadź adres udziału Samba w następującym formacie smb://samba_hostname_or_server_ip/sharename.

  3. Kliknij „Połącz” i pojawi się następujący ekran:

  4. Wybierz „Zarejestrowany użytkownik”, wprowadź nazwę użytkownika i hasło Samby i kliknij „Połącz”.
  5. Pliki na serwerze Samba zostaną wyświetlone.

Połączenie z udziałem Samba z systemu Windows #

Użytkownicy systemu Windows mają również możliwość połączenia się z udziałem Samba zarówno z poziomu wiersza poleceń, jak i GUI. Poniższe kroki pokazują, jak uzyskać dostęp do udziału za pomocą Eksploratora plików Windows.

  1. Otwórz Eksploratora plików i w lewym panelu kliknij prawym przyciskiem myszy na „Ten komputer”.
  2. Wybierz „Wybierz niestandardową lokalizację sieciową”, a następnie kliknij „Dalej”.
  3. W „Adresie internetowym lub sieciowym” wprowadź adres udziału Samba w następującym formacie \samba_hostname_or_server_ip\sharename.

  4. Kliknij „Dalej” i zostaniesz poproszony o wprowadzenie poświadczeń logowania, jak pokazano poniżej:

  5. W następnym oknie możesz wpisać niestandardową nazwę lokalizacji sieciowej. Domyślna zostanie pobrana przez serwer Samba.

  6. Kliknij „Dalej”, aby przejść do ostatniego ekranu kreatora konfiguracji połączenia.
  7. Kliknij „Zakończ”, a zostaną wyświetlone pliki na serwerze Samba.

Zakończenie #

W tym samouczku dowiedziałeś się, jak zainstalować serwer Samba na CentOS 7 i utworzyć różne typy współdzielonych i użytkowników. Pokazaliśmy również jak połączyć się z serwerem Samba z urządzeń z systemami Linux, macOS i Windows.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.