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
- Używaj silnych haseł w
smbpasswd. Unikaj udostępniania udziału jako guest
w środowiskach produkcyjnych.
- Ogranicz dostęp do serwera tylko z określonych podsieci (firewall).
- Regularnie aktualizuj pakiet
samba z repozytoriów bezpieczeństwa.
- Rozważ użycie protokołu SMB 3.x (włącz
server min protocol = SMB3 w
smb.conf) aby wzmocnić szyfrowanie.