Powrót do listy

Udostępnianie zasobów systemu Linux klientom Windows (Samba)

Samba jest otwarto‑źródłowym zestawem narzędzi umożliwiającym współdzielenie plików i drukarek pomiędzy systemami Linux/Unix a Windows. W środowisku szkolnym pozwala studentom ćwiczyć wymianę danych w mieszanej infrastrukturze.

1. Przygotowanie serwera Linux

Upewnij się, że serwer ma statyczny adres IP oraz dostęp do sieci. Zainstaluj pakiet Samba oraz niezbędne narzędzia:

sudo apt update && sudo apt install -y samba samba-common-bin

Sprawdź wersję i status usługi:

smbd --version systemctl status smbd

2. Konfiguracja podstawowa – udostępnienie prostego katalogu

Utwórz katalog, który będzie współdzielony, oraz ustaw odpowiednie uprawnienia:

sudo mkdir -p /srv/samba/share sudo chown nobody:nogroup /srv/samba/share sudo chmod 0775 /srv/samba/share

Edytuj plik konfiguracyjny /etc/samba/smb.conf i dopisz sekcję:

[EduShare] path = /srv/samba/share browseable = yes read only = no guest ok = yes force user = nobody

Po zapisaniu zmian zrestartuj usługę:

sudo systemctl restart smbd

Sprawdź, czy udział jest widoczny w sieci (na serwerze):

smbclient -L localhost -N

3. Dostęp z systemu Windows – mapowanie udziału

Na komputerze z Windows otwórz okno „Ten komputer”, kliknij „Mapuj dysk sieciowy”. W polu „Folder” wpisz ścieżkę UNC do serwera:

\\192.168.10.5\EduShare

Jeśli udostępniono gościa (guest ok = yes) można wybrać „Połącz przy użyciu innych poświadczeń” i pozostawić pola puste.

Po pomyślnym podłączeniu możesz kopiować pliki w obie strony – testując jednocześnie uprawnienia i współdzielenie.

4. Zaawansowana konfiguracja – kontrola dostępu

W środowiskach szkolnych często potrzebne są różne poziomy uprawnień. Poniżej przykład dwóch grup: students (tylko odczyt) oraz teachers (odczyt i zapis).

1. Dodajemy grupy systemowe:

sudo groupadd students sudo groupadd teachers

2. Tworzymy osobne katalogi:

sudo mkdir -p /srv/samba/students sudo mkdir -p /srv/samba/teachers sudo chown root:students /srv/samba/students sudo chmod 0770 /srv/samba/students sudo chown root:teachers /srv/samba/teachers sudo chmod 0770 /srv/samba/teachers

3. Dodajemy użytkowników (hasła ustalamy później w systemie Windows lub przy pomocy smbpasswd):

sudo useradd -M -s /usr/sbin/nologin -G students stu01 sudo useradd -M -s /usr/sbin/nologin -G teachers tea01 sudo smbpasswd -a stu01 sudo smbpasswd -a tea01

4. Rozszerzamy smb.conf:

[Students] path = /srv/samba/students read only = yes valid users = @students [Teachers] path = /srv/samba/teachers read only = no valid users = @teachers

Po zapisaniu i restarcie smbd studenci będą mieli jedynie dostęp do odczytu, a nauczyciele będą mogli również zapisywać.

5. Testowanie i diagnostyka

Na serwerze Linux użyj polecenia testparm aby sprawdzić poprawność składni pliku smb.conf:

testparm

Do monitorowania połączeń przydatny jest log plik /var/log/samba/log.smbd. Dodajemy do smb.conf sekcję logowania (opcjonalnie):

log level = 2 max log size = 1000

Po zmianach uruchom ponownie usługę i obserwuj wpisy w logach:

sudo systemctl restart smbd sudo tail -f /var/log/samba/log.smbd

6. Bezpieczeństwo i dobre praktyki