Wprowadzenie
Samba to narzędzie typu open source, które umożliwia udostępnianie plików między maszynami działającymi w jednej sieci. Umożliwia serwerom Linux udostępnianie plików komputerom działającym w różnych systemach operacyjnych, takich jak Windows.
W tym poradniku dowiesz się, jak zainstalować i skonfigurować Samba w Ubuntu 24.04.
Wymagania wstępne
- System Ubuntu (w tym samouczku użyjemy Ubuntu 24.04. Te same kroki działają też w Ubuntu 20.04 i 22.04).
- Uprawnienia sudo
- Edytor tekstu (w tym przewodniku użyjemy nano).
Jak zainstalować i skonfigurować Sambę w systemie Ubuntu
Większość menedżerów pakietów Linux posiada Sambę w swoim domyślnym repozytorium. Aby skonfigurować Sambę w Ubuntu, wykonaj poniższe kroki:
Krok 1: Zainstaluj Sambę
Odśwież informacje o repozytorium pakietów za pomocą:
sudo apt update
Uruchom następujące polecenie, aby zainstalować Sambę:
sudo apt install samba -y
Argument -y automatycznie zatwierdza wszelkie zapytania podczas instalacji.
Sprawdź instalację za pomocą polecenia whereis:
whereis samba
Wyjście wskazuje katalog zawierający Sambę. Inną metodą weryfikacji instalacji jest sprawdzenie wersji Samby:
samba -V
Dane wyjściowe pokazują, że w systemie zainstalowano wersję Samby 4.19.5.
Na koniec sprawdź, czy Samba działa:
systemctl status smbd
Dane wyjściowe pokazują, że usługa smbd jest włączona i działa.
Krok 2: Utwórz katalog współdzielony
Aby udostępnić pliki za pomocą Samby, utwórz katalog zawierający pliki do udostępnienia. Użyj mkdir -p, aby utworzyć katalog w /home:
Na przykład utwórz katalog o nazwie „sharing” komendą:
sudo mkdir -p /home/sharing
Użyj ls do sprawdzenia wyniku.
ls
Krok 3: Skonfiguruj globalne opcje Samby
Skonfiguruj Sambę, edytując plik konfiguracyjny smb.conf znajdujący się w /etc/samba/smb.conf . W tym samouczku użyjemy nano :
Otwórz plik konfiguracyjny za pomocą:
sudo nano /etc/samba/smb.conf
Przewiń w dół do sekcji Global Settings . Ta sekcja konfiguruje zachowanie, nazwę, rolę i interfejsy sieciowe serwera Samba.
Uwaga: Niektóre ustawienia w pliku smb.conf są oznaczone jako komentarze. Aby włączyć i dostosować te ustawienia, usuń znak ; na początku linni.
Kluczowe parametry, które należy wziąć pod uwagę, podano w poniższych podsekcjach.
Browsing/Identification
Podsekcja Browsing zawiera parametry workgroup i server string.
- Parametr workgroup umożliwia udostępnianie plików między grupą komputerów w sieci lokalnej. W systemach Windows 10/11 domyślnie jest to WORKGROUP.
- Ustawienie server string identyfikuje serwer Samba.
W konfiguracji Samby, parametr %h w wartości server string odnosi się do nazwa hosta (hostname) serwera, na którym Samba jest uruchomiona. Czyli: %h zostanie zastąpione przez nazwę hosta maszyny w czasie rzeczywistym.
Networking
Użyj podsekcji Networking , aby skonfigurować interfejsy sieciowe, do których Samba się łączy. Networking zawiera dwa parametry:
- Parametr interfaces ustawia interfejs sieciowy, z którym ma się połączyć Samba.
- Parametr bind interfaces only zapewnia, że Samba łączy się tylko z interfejsami wymienionymi w pliku. Parametr powinien być zawsze ustawiony na yes.
Aby ustawić parametr interfaces, najpierw sprawdź dostępne interfejsy za pomocą polecenia ip:
ip a
Przykładowy wynik wskazuje, że Samba łączy się z dwoma interfejsami: lo, interfejsem pętli zwrotnej i enp0s3, interfejsem sieciowym.
W tym przypadku ustawienia są następujące:
interfaces = lo enp0s3
bind interfaces only = yes
Uwaga: interfejsy sieciowe, z którymi łączy się Samba, mogą się różnić w zależności od maszyny.
Debugging
Podsekcja Debugging ma cztery parametry. Ustaw je w następujący sposób:
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
panic action = /usr/share/samba/panic-action %d
- log file = /var/log/samba/log.%m – Przechowuje logi w pliku o nazwie pochodzącej od maszyny łączącej ( %m) w określonym katalogu. To ustawienie ułatwia debugowanie problemów specyficznych dla klienta.
- max log size = 1000 – Ogranicza rozmiar plików dziennika do 1000 KB przed rotacją, zapobiegając wyczerpaniu miejsca na dysku.
- logging = file – Konfiguruje Sambę w celu rejestrowania zdarzeń w plikach, aby umożliwić dostęp do zapisów i ich trwałość.
- panic action = /usr/share/samba/panic-action %d – Wykonuje określony skrypt w przypadku wystąpienia poważnego błędu (%d przekazuje szczegóły błędu), umożliwiając natychmiastowe rozwiązywanie problemów lub podejmowanie działań naprawczych.
Authentication, Domain, and Misc
Najważniejszym parametrem Authentication jest server role. Ten parametr określa typ serwera dla Samby.
Jeśli nie ma takiego, dodaj następujący wiersz, aby ustawić Sambę jako samodzielny serwer:
server role = standalone server
Inne ustawienia uwierzytelniania obejmują:
- obey pam restrictions = yes – Zapewnia zgodność protokołu Samba z zasadami uwierzytelniania PAM, co pozwala na zachowanie scentralizowanej kontroli dostępu.
- unix password sync = yes – Synchronizuje hasła Samba z hasłami systemowymi UNIX w celu zapewnienia spójnych danych uwierzytelniających w różnych usługach.
- passwd program = /usr/bin/passwd %u – Określa polecenie systemowe służące do zmiany haseł użytkowników w celu integracji z natywnym zarządzaniem hasłami.
- passwd chat = Enter\snew\s\spassword:* %n\n Retype\snew\s\spassword:* %n\n password\supdated\ssuccessfully . – Automatyzuje interakcje związane ze zmianą haseł, aby zapewnić
- pam password change = yes – Używa PAM do obsługi zmian haseł. To ustawienie umożliwia egzekwowanie zasad haseł w całym systemie.
- map to guest = bad user – Mapuje nierozpoznanych użytkowników na konto gościa, aby zapewnić ograniczony dostęp dla nieuwierzytelnionych użytkowników.
Nie zmieniaj żadnych ustawień w podsekcji Domain , ale przewiń w dół do sekcji Misc i ustaw następujące:
usershare allow guests = yes
Ustawienie pozwala na dostęp gościa (nieuwierzytelniony) do udostępnionych przez użytkownika zasobów Samba. Umożliwia każdemu w sieci dostęp do udostępnionych plików bez nazwy użytkownika i hasła.
Pozostaw wszystkie pozostałe ustawienia globalne bez zmian.
Zapisz i wyjdź z pliku, a następnie uruchom testparm – narzędzie Samba, aby sprawdzić, czy nie ma błędów składniowych:
testparm
Na wyjściu pojawia się komunikat Loaded services file OK, co oznacza brak błędów składni. Po skonfigurowaniu Global Settings serwer Samba jest gotowy do użycia.
Aby jednak odblokować pełną funkcjonalność Samby, należy skonfigurować użytkowników i katalog , tak jak pokazano w sekcji poniżej.
Krok 4: Utwórz konto użytkownika
Utwórz konto użytkownika w Samba, aby uwierzytelniać i kontrolować dostęp do współdzielonych zasobów. Dzięki temu tylko autoryzowani użytkownicy będą mogli uzyskać dostęp do poufnych plików lub katalogów.
Aby utworzyć konto użytkownika, ustaw nazwę użytkownika i hasło za pomocą:
sudo smbpasswd -a [username]
Należy pamiętać, że nazwa użytkownika powinna należeć do użytkownika systemowego. Na przykład w tym przykładzie konto systemowe w systemie Ubuntu to cwaniak . Stąd nazwa użytkownika jest taka sama, jeśli chcesz dodać istniejącego użytkownika do Samby:
sudo smbpasswd -a cwaniak
Aby dodać nowego użytkownika do Samby i systemu, użyj polecenia adduser:
sudo adduser [username]
Zastąp [username] nazwą nowego użytkownika. Na przykład dodaj new_user do systemu za pomocą:
sudo adduser new_user
Wprowadź i potwierdź hasło systemowe dla new_user. Resztę pozycji możesz zostawić puste potwierdzając enterem.
Utwórz nowego użytkownika Samba za pomocą:
sudo smbpasswd -a new_user
Obaj użytkownicy muszą mieć dostęp do odczytu, zapisu i wykonywania katalogu współdzielonego . Podczas gdy użytkownik cwaniak ma te uprawnienia domyślnie, new_user ich nie ma.
Aby przyznać uprawnienia do odczytu, zapisu i wykonywania dla katalogu współdzielonego , uruchom setfacl:
sudo setfacl -R -m "u:new_user:rwx" /home/sharing
Polecenie nie generuje wyniku.
Krok 5: Skonfiguruj ustawienia udostępnianego katalogu Samba
Katalog współdzielony Samba to katalog w systemie Linux skonfigurowany tak, aby był dostępny dla innych urządzeń w sieci za pomocą protokołu SMB/CIFS. Wykonaj poniższe kroki, aby skonfigurować ustawienia katalogu:
Uzyskaj ponownie dostęp do pliku konfiguracyjnego, aby dodać wcześniej utworzony katalog współdzielony .
sudo nano /etc/samba/smb.conf
Przejdź na koniec pliku i dodaj następujące wiersze:
[sharing]
comment = Samba share directory
path = /home/sharing
read only = no
writable = yes
browseable = yes
guest ok = no
valid users = @cwaniak @new_user
Każdy wiersz przyznaje określone uprawnienia dostępu do katalogu. Na przykład:
- [sharing] Reprezentuje nazwę katalogu. Jest to lokalizacja katalogu, którą widzą użytkownicy systemu Windows.
- comment Służy jako opis współdzielonego katalogu.
- path Określa lokalizację współdzielonego katalogu. W przykładzie użyto katalogu w /home, ale użytkownicy mogą również umieścić współdzielone pliki w /samba.
- read only Umożliwia użytkownikom modyfikowanie katalogu oraz dodawanie i zmienianie plików, gdy jest ustawione na no.
- writeable Udziela dostępu do odczytu i zapisu po ustawieniu na yes.
- browseable Umożliwia innym maszynom w sieci znalezienie serwera Samba i udziału Samba, gdy jest ustawione na yes. W przeciwnym razie użytkownicy muszą znać dokładną nazwę serwera Samba i wpisać ścieżkę dostępu do udostępnionego katalogu.
- guest ok Gdy ustawiony na no, ten parametr wyłącza dostęp gościa. Użytkownicy muszą wprowadzić nazwę użytkownika i hasło, aby uzyskać dostęp do udostępnionego katalogu.
- valid users Tylko wymienieni użytkownicy mają dostęp do udziału Samba. Zastąp @cwaniak @new_user własnymi wartościami.
Zapisz zmiany i wyjdź z pliku.
Sprawdź ponownie składnię:
testparm
Wynik powinien potwierdzić, że Samba jest odpowiednio skonfigurowana. Aby uzyskać bardziej szczegółowe dane wyjściowe wszystkich ustawień, naciśnij Enter:
Krok 6: Zaktualizuj reguły zapory
Aby upewnić się, że zapora sieciowa Linux zezwala na ruch Samba, uruchom:
sudo ufw allow samba
Krok 7: Połącz się z katalogiem współdzielonym
Aby zakończyć konfigurację, połącz się z udostępnionym katalogiem, który skonfigurowaliśmy wcześniej. Wykonaj poniższe kroki:
Najpierw uruchom ponownie usługę Samba, aby upewnić się, że wszystkie zmiany konfiguracji zostały zastosowane:
sudo systemctl restart smbdsudo systemctl restart smbd
sudo systemctl restart smbd
Polecenie nie wyświetla żadnego wyniku.
Aby połączyć się z udostępnionym katalogiem w systemie Windows przechodzimy do eksploratora windows i wybieramy opcję Mapuj dysk sieciowy:
W następującym oknie wypełniamy pola:
- Dysk – wybieramy dowolną literę
- Folder – wpisujemy\\IP_Serwera\udostępniony_folder
- Zaznaczamy opcję Połącz ponownie przy logowaniu i Połącz przy użyciu innych poświadczeń
Wpisujemy login i hasło użytkownika, którego tworzyliśmy w kroku 4
W eksploratorze plików pojawi się nowy zasób: