Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa

Darmowa diagnoza laptopa

Dojazd do klienta bezpłatnie

Dojazd do klienta bezpłatnie

Laptopy zastępcze bezpłatnie

Laptopy zastępcze bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

Samba

Termin Definicja
Samba

Samba to implementacja protokołu SMB/CIFS dla systemów Unix/Linux, umożliwiająca udostępnianie plików i drukarek z Windows.

Samba jako implementacja SMB/CIFS w systemach Unix i Linux

Samba jest pakietem oprogramowania dla systemów Unix i Linux, który implementuje protokół SMB, znany również jako Server Message Block. Dzięki temu komputer z systemem Linux może udostępniać katalogi i drukarki urządzeniom pracującym pod kontrolą Windows. Samba może również korzystać z udziałów udostępnionych przez inne serwery SMB, ponieważ zawiera zarówno komponenty działające jako serwer, jak i narzędzia klienckie. Nazwa CIFS odnosi się do historycznie rozwiniętej odmiany SMB, kojarzonej głównie z systemem Windows NT i starszymi sposobami udostępniania zasobów.

W praktyce Samba pozwala zbudować wspólną przestrzeń plikową dla różnych systemów operacyjnych. Użytkownik Windows może otworzyć udział sieciowy w postaci ścieżki UNC, na przykład \\serwer\dokumenty, natomiast klient Linux może uzyskać dostęp do tego samego zasobu za pomocą programu smbclient albo przez zamontowanie udziału w systemowym punkcie montowania. Protokół odpowiada nie tylko za przesyłanie plików, lecz także za operacje na katalogach, blokowanie plików, obsługę atrybutów oraz dostęp do drukarek sieciowych.

Udziały sieciowe i plik konfiguracyjny smb.conf

Podstawowa konfiguracja serwera Samba znajduje się zwykle w pliku /etc/samba/smb.conf. Plik składa się z sekcji, między innymi globalnej sekcji [global] oraz sekcji opisujących poszczególne udziały. Sekcja udziału określa jego nazwę widoczną w sieci, lokalną ścieżkę katalogu, możliwość zapisu, dostęp dla gości i reguły kontroli użytkowników. Przykładowe parametry to path, read only, guest ok, valid users i browseable. Ich znaczenie zależy od całego zestawu ustawień, dlatego pojedyncza zmiana nie zawsze daje oczekiwany efekt.

Po modyfikacji konfigurację można sprawdzić narzędziem testparm. Program analizuje składnię pliku i pokazuje zinterpretowane ustawienia, co pomaga wykryć literówki, błędne wartości oraz nieprawidłową strukturę sekcji. Dostęp do udziału może być oparty na lokalnych kontach Samby, kontach systemowych albo zewnętrznym mechanizmie uwierzytelniania. W przypadku kont lokalnych hasło używane przez Sambę jest zarządzane niezależnie od samego hasła systemowego, choć konto systemowe nadal musi istnieć, aby użytkownik mógł zostać poprawnie odwzorowany na właściciela plików i uprawnienia systemu Linux.

Negocjowanie protokołu, uwierzytelnianie i uprawnienia

Podczas nawiązywania połączenia klient i serwer uzgadniają wersję protokołu SMB oraz dostępne mechanizmy zabezpieczeń. Współczesne wdrożenia Samby wykorzystują przede wszystkim SMB2 lub SMB3, natomiast SMB1, określany także jako NT1, jest rozwiązaniem historycznym i może być wyłączony w nowszych konfiguracjach ze względów bezpieczeństwa oraz kompatybilności. Wymuszenie konkretnej wersji po stronie klienta może być potrzebne przy łączeniu ze starszym urządzeniem, ale ograniczenie negocjacji do nieaktualnego protokołu może uniemożliwić użycie nowszych funkcji i zwiększyć ryzyko.

Uprawnienia do plików są wynikiem współdziałania reguł Samby oraz praw systemu plików Linux. Ustawienie udziału jako zapisywalnego nie zapewnia samo w sobie prawa zapisu, jeżeli użytkownik nie ma odpowiednich uprawnień do lokalnego katalogu. Podobnie prawa systemowe nie wystarczą, jeśli konfiguracja udziału ogranicza dostęp dyrektywą valid users lub zezwala wyłącznie na odczyt. Problemy mogą wynikać także z różnicy między nazwą użytkownika używaną przez Windows a kontem istniejącym w systemie Linux, z nieprawidłową grupą pliku albo z dziedziczeniem uprawnień przy tworzeniu nowych elementów.

Sprawdzanie połączenia z udziałem Samba

Podstawowym narzędziem tekstowym do testowania dostępu do udziału jest smbclient. Polecenie w rodzaju smbclient -L //serwer -U użytkownik służy do wyświetlenia udziałów oferowanych przez wskazany host, a smbclient //serwer/udział -U użytkownik otwiera interaktywną sesję z konkretnym zasobem. W sesji można używać poleceń takich jak ls, get, put i quit. Jeżeli lista udziałów jest widoczna, ale odczyt lub zapis pliku kończy się odmową, należy oddzielnie sprawdzić uwierzytelnienie, reguły udziału i uprawnienia lokalnego systemu plików.

Na serwerze przydatne są polecenia smbstatus oraz logi usług Samby, ponieważ pokazują aktywne połączenia, używane udziały i niektóre blokady plików. Przy montowaniu udziału w Linux można użyć typu systemu plików cifs, na przykład za pośrednictwem narzędzia mount.cifs. Wtedy istotne są parametry takie jak nazwa użytkownika, grupa robocza lub domena, wersja SMB oraz lokalny punkt montowania. Diagnostyka powinna uwzględniać także rozwiązywanie nazwy hosta, dostępność portu 445, zaporę sieciową i różnice między ścieżką lokalną serwera a nazwą udziału widoczną dla klienta.