SAMBA to oprogramowanie umożliwiające uruchomienie tak zwanego serwera plików na systemie Linux. Umożliwia też utworzenie mieszanego środowiska, w którym mogą działać komputery z systemem operacyjnym Unix, Linux oraz Windows i wzajemnie korzystać ze swoich zasobów. Aby zainstalować sambę należy wydać polecenie sudo apt install samba
Po zakończeniu sprawdzamy czy samba działa poleceniem sudo systemctl status smbd. Widzimy, że jest OK i możemy rozpocząć jej konfigurację
Najpierw utworzymy folder, który będzie zasobem sieciowym. Tworzymy poleceniem sudo mkdir /home/pitbull. Nadamy mu pełne uprawnienia dla wszystkich użytkowników sudo chmod 777 /home/pitbull. Po wyświetleniu zawartości folderu /home widzimy, że jego właścicielem jest root (grupa także). Trzeba to zmienić
Właścielem folderu będzie user nobody, a grupa nogroup. Są to obiekty używane w nieuprzywilejowanych
procesach więc możemy spokojnie je zastosować do naszego ćwiczenia. Zmianę właściciela i grupy możemy wykonać jednym lub dwoma
poleceniami:
sudo chown nobody /home/pitbull, a następnie sudo chgrp nogroup /home/pitbull
A jeśli chcemy wykonać to jednym poleceniem to wpisujemy: sudo chown nobody:nogrup /home/pitbull
Następnie sprawdzamy poleceniem ls -l /home i widzimy, że jest OK
Plik konfiguracyjny samby to smb.conf. Zanim cokolwiek w nim zmienimy, warto zrobić sobie jego kopię. Wykonujemy to poleceniem sudo cp /etc/samba/smb.conf /etc/samba/smb.conf-kopia. Przejdziemy do tego katalogu poleceniem cd /etc/samba, a potem sprawdzamy czy nasza kopia została tam utworzona
Następnie przechodzimy na koniec pliku i dodajemy nasz folder sieciowy z konkretnymi parametrami dokonując wpisów jak wyżej. Zapisujemy zmiany i zamykamy plik
Następnie restartujemy naszą usługę poleceniem sudo systemctl restart smbd oraz sprawdzamy jej status. Działa!
Teraz sprawdzamy z poziomu klienta Windows. Widzimy nasz serwer, ale gdyby go nie było, to w pasku eksploratora wpisujemy \\10.80.80.1 i dostęp do folderu powinien się pojawić
Wchodzimy do folderu pitbull i tworzymy jakiś plik
Podobnie postępujemy na drugim kliencie (z Ubuntu), tutaj po wybraniu opcji Pliki, a następnie Inne położenia nasz serwer o nazwie SERWER110 jest również dostępny
Klikamy w SEREWR110, następnie w folder pitbull, wybieramy dostęp anonimowy, klikamy Połącz i mamy dostęp do zasobu sieciowego
Aby istniała autoryzacja użytkownika w sambie, należy założyć konto w systemie oraz w sambie. Istnieje synchronizacja tych dwóch baz danych użytkowników, którą również należy przeprowadzić. Tworzymy konto bondjs
Następnie synchronizujemy naszego usera z sambą poleceniem sudo smbpasswd -a bondjs. Hasło nalepiej dać takie jak obowiązujące w systemie dla tego usera
Utworzymy folder, który będzie zasobem sieciowym z dostępem autoryzowanym. Tworzymy poleceniem sudo mkdir /home/auto. Nadamy mu pełne uprawnienia dla wszystkich użytkowników sudo chmod 777 /home/auto. Po wyświetleniu zawartości folderu /home widzimy, że jego właścicielem jest root (grupa także). Możemy to zostawić
Teraz edytujemy plik konfiguracyjny: sudo nano /etc/samba/smb.conf i tam dokonamy takich zmian aby mieć dostęp autoryzowany. Przechodzimy na koniec pliku i dodajemy nasz nowy folder sieciowy z konkretnymi parametrami dokonując wpisów jak wyżej. Zapisujemy zmiany i zamykamy plik
Następnie restartujemy naszą usługę poleceniem sudo systemctl restart smbd oraz sprawdzamy jego status. Działa!
Ponownie sprawdzamy z poziomu klienta Windows. Nasz serwer jest widoczny, przechodzimy do niego i klikamy w folder auto. Oczywiście zostajemy poproszenie o autoryzację
Wchodzimy do folderu auto i tworzymy plik. Wszystko działa jak należy
Podobnie postępujemy na drugim kliencie (z Ubuntu). Klikamy w folder auto, wybieramy dostęp autoryzowany, podajemy login, grupę roboczą, hasło i klikamy Połącz i mamy dostęp do zasobu sieciowego z utworzonym plikiem
Oczywiście z poziomu serwera też możemy sprawdzić zawartość tych folderów. Przechodzimy do katalogu /home i używając polecenia ls -l nazwa_folderu wyświetlamy ich zawartość
Tym razem tworzymy przynajmniej dwa konta w systemie znanym już poleceniem sudo adduser nazwa_użytkownika. Utworzymy konta bondj2s i bondj3s
Następnie synchronizujemy ich z sambą poleceniem sudo smbpasswd -a nazwa_użytkownika
Tworzymy również grupę wataha, a następnie przypisujemy do niej naszych użytkowników poleceniem sudo usermod -G wataha -a nazwa_użytkownika
Sprawdzamy plik group i widzimy, że nasi użytkownicy są przypisani do właściwej grupy
Teraz modyfikujemy plik smb.conf. Edytujemy go znanym już poleceniem sudo nano /etc/samba/smb.conf i tam dokonamy modyfikacji nadając nazwę udziałowi również wataha
Musimy jeszcze utworzyć nasz folder. Przy tworzeniu nadamy mu pełne prawa dostępu dla wszystkich użytkowników. Wykonujemy polecenie sudo mkdir -m 777 /home/wataha. Sprawdzamy prawa, restartujemy SAMBĘ i widzimy, że jest ok
Sprawdzamy z poziomu klienta Windows. Warto się wylogować z systemu i zalogować ponownie. Zaznaczamy Sieć potem SERWER110, klikamy w folder wataha i autoryzujemy dostęp. Wchodzimy do folderu wataha i tworzymy plik. Wszystko działa jak należy
Podobnie postępujemy na drugim kliencie (z Ubuntu). Klikamy w folder wataha, wybieramy dostęp autoryzowany (drugim użytkownikiem), podajemy login, grupę roboczą, hasło i klikamy Połącz i mamy dostęp do zasobu sieciowego
Teraz utworzymy folder i plik z klienta Ubuntu oraz drugi folder z klienta Windows (plik już mamy)
Następnie z poziomu serwera sprawdzamy zawartość folderu wataha. Widzimy, że właścicielem danych z Ubuntu jest bondj3s, a danych z Windowsa bondj2s, czyli tak jak się logowaliśmy. Dodatkowo uprawnienia do tworzonych folderów to 770, a do plików 755, a raczej 644 - ponieważ przy tworzonych plikach, SAMBA jakby nie uwzględnia opcji x (wykonanie).
Możemy też na poziomie SAMB-y regulować uprawnieniami. Aby komuś zabronić dostępu (nawet z danej grupy, która posiada uprawnienia do zasobu) wystarczy użyć opcji invalid users = bondj2s
I sprawdzamy teraz dostęp użytkownikiem bondj2s. Oczywiście dostępu brak
Możemy też użyć opcji write list lub read list, a następnie podać użytkowników, którym chcemy nadać takie uprawnienia. Nadamy więc użytkownikowi bondj3s tylko odczyt do naszego zasobu
I teraz z poziomu klienta Ubuntu, będąc zalogowanym bondj3s sprawdzamy czy uda nam się utworzyć jakiś folder. Oczywiście dostajemy odmowę