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.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo 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=samba
firewall-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/josh
sudo 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 sadmin
sudo 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
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 nano
inni użytkownicy nie będą mogli zobaczyć tego udziału. -
read only
– Czy użytkownicy określeni na liścievalid 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.service
sudo 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.
- Otwórz Files i kliknij na „Other Locations” na pasku bocznym.
- W „Connect to Server”, wprowadź adres udziału Samby w następującym formacie
smb://samba_hostname_or_server_ip/sharename
. - Kliknij „Połącz” i pojawi się następujący ekran:
- Wybierz „Zarejestrowany użytkownik”, wprowadź nazwę użytkownika i hasło Samby i kliknij „Połącz”.
- 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.
- Otwórz „Findera”, wybierz „Go” i kliknij „Connect To”.
- W „Connect To” wprowadź adres udziału Samba w następującym formacie
smb://samba_hostname_or_server_ip/sharename
.
- Kliknij „Połącz” i pojawi się następujący ekran:
- Wybierz „Zarejestrowany użytkownik”, wprowadź nazwę użytkownika i hasło Samby i kliknij „Połącz”.
- 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.
- Otwórz Eksploratora plików i w lewym panelu kliknij prawym przyciskiem myszy na „Ten komputer”.
- Wybierz „Wybierz niestandardową lokalizację sieciową”, a następnie kliknij „Dalej”.
- W „Adresie internetowym lub sieciowym” wprowadź adres udziału Samba w następującym formacie
\samba_hostname_or_server_ip\sharename
.
- Kliknij „Dalej” i zostaniesz poproszony o wprowadzenie poświadczeń logowania, jak pokazano poniżej:
- W następnym oknie możesz wpisać niestandardową nazwę lokalizacji sieciowej. Domyślna zostanie pobrana przez serwer Samba.
- Kliknij „Dalej”, aby przejść do ostatniego ekranu kreatora konfiguracji połączenia.
- 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.
.