Linux Ubuntu Samba, instalacja i konfiguracja



Samba – oprogramowanie umożliwiające uruchomienie tak zwanego serwera plików, na systemie Linux. Jest ono kompatybilne z systemem Windows, dlatego jest bardzo powszechnie stosowane w firmach, uczelniach, instytucjach, zakładach produkcyjnych, czy nawet bankach. Charakteryzuje się bardzo dużym bezpieczeństwem i stabilnością pracy. W poniższym artykule opiszę jak zainstalować i poprawnie skonfigurować Sambę na przykładzie dystrybucji Linux Ubuntu.

Może tylko pokrótce napiszę do czego w praktyce może nam się przydać samba, otóż załóżmy że np. mamy klasę informatyczną, gdzie jest 20 komputerów z Windowsem XP, wiadomo, że na zajęciach wykładowca będzie chciał udostępnić innym różne pliki. Mając komputer z Linuxem i Sambą, wrzuci owe pliki na serwer i udostępni je studentom. Nie ma też znaczenia, czy student będzie pracował na Windowsie, czy Linuxie, każdy będzie miał dostęp do tych plików.

Innym ciekawym zastosowaniem jest np. serwer plików dla programów księgowych, np. dla symfonii, która umożliwia pracę kilku księgowym na jednej bazie. Umożliwia to również tworzenie regularnego backupu istotnych danych, oraz ochrania je np. przed wirusami. Zastosowań jest bardzo wiele, wy sami powinniście wiedzieć do czego wykorzystacie sambę :)

Instalacja Samby

Zacznijmy od instalacji samby na naszym serwerze. Jako że jest to oprogramowanie bardzo popularne, praktycznie każda dystrybucja ma gotowe do instalacji paczki w repozytoriach, dlatego też zainstalujemy ją właśnie z nich. W przypadku Ubuntu będzie to po prostu polecenie:

sudo apt-get install samba

po chwili mamy zainstalowaną usługę w komputerze. Jej systemowa nazwa to smbd i nmbd, przyda nam się to później. Przejdźmy do najważniejszej części, czyli konfiguracji.

Konfiguracja Samby

Główny plik konfiguracyjny Samby znajduje się w następującej lokalizacji:

/etc/samba/smb.conf

plik jest własnością root-a, dlatego do wszelakich zmian będziemy potrzebowali uprawnień admina. Najwygodniej jest po prostu zalogować się na stałe jako admin:

sudo su

a plik edytować programem:

nano smb.conf

Plik ten jest dość pokaźnych rozmiarów, więc spędzimy chwilę na ustalaniu optymalnej konfiguracji. Zwrócę tutaj uwagę tylko na pozycje, które nas najbardziej interesują, zaczynamy:


Plik jest opatrzony komentarzami po angielsku, które powinny nam dość znacznie pomóc, zwróćcie uwagę, że linijki zaczynające się na # oraz ; są nieaktywne.

[global]
w tej sekcji mamy ustawienia, globalne, dotyczące wszystkich użytkowników.

workgroup = WORKGROUP
ustalamy nazwę grupy z Windowsa, najlepiej ustawić taką nazwę grupy, którą mają pozostałe komputery w sieci, w przypadku domyślnej instalacji Windowsa w wersji pl, będzie to: GRUPA_ROBOCZA

server string = %h server (Samba, Ubuntu)
pod tą nazwą będzie widoczny serwer w otoczeniu sieciowym.

security = user
bardzo ważne ustawienie, określające kto może korzystać z serwera plików, w przypadku ustawienia user, każdy kto będzie chciał coś ściągnąć z naszego serwer, będzie musiał mieć na nim własne konto użytkownika, natomiast w przypadku ustawienia share, nie ma takiej potrzeby. Należy tą opcję odkomentować (usunąć #).

encrypt passwords = true
w przypadku ustawienia security = user, powyższy wpis sprawia, że hasło użytkownika będzie szyfrowane, opcja ta może sprawiać pewne problemy, ale o tym napiszę później.

passdb backend = tdbsam
w przypadku szyfrowania hasła, powyższa opcja określa, gdzie będą zapisywane zaszyfrowane hasła.

map to guest = bad user
opcja sprawia, że wszystkie osoby, które nie zalogują się w sambie jako użytkownik, będą miały prawa gościa.

Dział Share Definitions odpowiada za katalogi, które chcemy innym udostępniać, możemy tutaj określić też ich prawa, czyli np. atrybut tylko do odczytu.

Security share

Zajmiemy się najpierw sytuacją, gdzie nie chcemy tworzyć żadnych użytkowników, a chcemy po prostu udostępnić wszystkim innym w sieci swoje pliki. W takim właśnie wypadku w konfigu należy ustawić opcję security na share. To nie koniec, niestety domyślny konfig samby z Ubuntu jest dość felerny i należy go poprawić. Brakuje przede wszystkim kilku ważnych linijek, zaraz je dodamy i omówimy. Najpierw zmieńmy te opcje, które już są, tj:

workgroup = GRUPA_ROBOCZA
server string = Samba
security = share

Następnie dodajemy dodatkowe opcje na początku konfiga, ja je wsadziłem przed linijką #### Networking #### (muszą być w sekcji [global]), a wyglądają one następująco:

# Moje dodatkowe ustawienia

   netbios name = Samba
   browseable = yes
   local master = yes
   domain master = yes

netbios name – to nazwa naszego serwera, która będzie się wyświetlać w otoczeniu sieciowym
browseable – bez tej opcji nasz serwer wogóle nie będzie widoczny w otoczeniu sieciowym
local i domain master – potrzebne do właściwej komunikacji między serwerem, a klientami

Załóżmy, że chcemy wszystkim udostępnić folder „wspolne”, znajdujący się w naszym katalogu domowym, tak więc jego ścieżka wygląda następująco (nazwa mojego użytkownika to qlwik):

/home/qlwik/wspolne

dodajemy więc następujący wpis na samym końcu pliku konfiguracyjnego samby:

[wspolne]
comment = wspolne
path = /home/qlwik/wspolne
browseable = yes
writable = no
create mode = 0644
directory mode = 0755
guest ok = yes

comment – nazwa udostępnianego zasobu
path – ścieżka do niego
browseable – określa czy zasób ten można przeglądać
writable – określa to czy można w nim zapisywać i zmieniać pliki
create mode – określa jakie prawa dostępu mają nowo tworzone w nim pliki
directory mode – odnosi się do praw tworzonych folderów
guest ok – ważna opcja, bez niej będzie się nam ciągle pokazywało okienko logowania w Windowsie, kiedy będziemy chcieli otworzyć zasób, a i tak się nie zalogujemy, bo nie stworzyliśmy jeszcze żadnych użytkowników.


Następnie restartujemy Sambę poleceniami:
service smbd restart
service nmbd restart

Po chwili nasz serwer powinien być już widoczny w otoczeniu sieciowym pod nazwą Samba, jeżeli do niego wejdziemy, powinniśmy zobaczyć w nim katalog „wspolne”. W obecnej konfiguracji folder ten jest jednak tylko do odczytu, aby inni mogli tu coś zapisywać należy zrobić kilka zmian. Po pierwsze należy zmienić uprawnienia do katalogu na serwerze na poziomie 777, czyli:

chmod 777 /home/qlwik/wspolne

następnie w pliku konfiguracyjnym Samby (przy opcjach dotyczących zasobu [wspolne]) trzeba zmienić jedną linijkę, mianowicie:

writable = yes

po zrestartowaniu Samby, każdy będzie miał prawa do zapisu, modyfikacji i kasowania w nim plików.

Jeżeli planujemy udostępnić wszystkim zainstalowane na serwerze drukarki, wystarczy przy udziałach [printers] oraz [print$] zmienić:
guest ok = yes

Uwaga: W niektórych dystrybucjach Linux-a należy dodatkowo odblokować porty Samby na firewall-u, jeżeli takowy jest zainstalowany.

Uwaga2: Jeżeli są jakieś zacinki i zawieszki w połączeniu się z Sambą, czasami warto zrestartować połączenie sieciowe klienta.

Security user

Teraz zobaczmy jak działa opcja security = user. W tym przypadku do przeglądania jakichkolwiek zasobów, potrzebny jest login i hasło. Zaczynamy od stworzenia nowego użytkownika w systemie Linux, w Ubuntu można to zrobić wybierając menu:

System -> Administracja -> Użytkownicy i Grupy

dodajemy np. użytkownika marian a jego hasło to 123456, teraz trzeba tego użytkownika dodać do bazy Samby, wpisujemy w konsoli:

smbpasswd -a marian

podajemy 2 razy hasło, czyli 123456, użytkownik został dodany, teraz idziemy do pliku konfiguracyjnego, zmieniamy oczywiście opcję:

security = user

po zapisaniu konfiga i zrestartowaniu samby, Windows będzie wyświetlał okienko logowania, gdy zechcemy wejść na serwer. Spróbujmy wejść więc teraz do udostępnionego katalogu, wpisujemy login i hasło, i spróbujmy coś w nim zapisać. Jeżeli katalog „wspolne” ma uprawnienia na poziomie 777 i w pliku konfiguracyjnym mamy opcję writable = yes, to będziemy mogli to uczynić, jest jednak jedno ale. Nowo stworzony plik będzie miał za właściciela mariana, i będzie tylko do odczytu dla innych, żeby to zmienić, należy zmienić następujące opcje w konfigu samby:

create mode = 0777
directory mode = 0777

dzięki temu wszystkie tworzone pliki i katalogi będą miały domyślne uprawnienia 777.

Mapowanie dysków w Windows

Bardzo wygodną metodą korzystania z zasobów udostępnianych przez Sambę jest mapowanie dysków sieciowych. Polega ono na tym, że udostępniony folder będzie dostępny w folderze „Mój komputer”, jako dodatkowy dysk, np. X:. Przedstawię tutaj metodę, która dobrze działa również na kompach z Windowsem Xp Home, na których mapowanie dysków zostało zablokowane.

Tworzymy na pulpicie plik tekstowy i go edytujemy. Tu wpisujemy:

net use z: \\192.168.0.100\wspolne /user:marian 123456 /persistent:no

Oczywiście wpisujemy tutaj adres IP naszego serwera z sambą. Zamiast adresu IP można też podać nazwę serwera wyświetlaną w otoczeniu sieciowym, jednak ja tego nie zalecam, ponieważ zaobserwowałem w takim wypadku pewne problemy z komunikacją między maszynami. Zapisujemy stworzony plik tekstowy, a następnie zmieniamy jego rozszerzenie z txt na bat. Jeżeli nie widzicie jego rozszerzenia to można to zmienić w opcjach folderów. Wrzucamy plik do autostartu i restartujemy Windowsa. Po restarcie powinien się pokazać w „Mój komputer” nowy napęd o oznaczeniu Z:\\, prowadzący do folderu dokumenty, na którym mamy wszelkie prawa, zapisu i odczytu. Można w ten sposób skonfigurować kilka kompów, dzięki czemu uzyskają one dostęp do tego samego folderu.

Tagi: , , , , , ,

Odpowiedzi: 15 do wpisu Linux Ubuntu Samba, instalacja i konfiguracja

  1. Zielony pisze:

    Świetny materiał, wszystko co najważniejsze przejrzyście opisane. Bardzo mi pomógł w zgłębianiu zagadek Linuksa.
    Bardzo dziękuję!

  2. admin pisze:

    @Zielony Dzięki, jeżeli czegoś jeszcze brakuje w tym temacie to piszcie.

  3. Amalo pisze:

    Właśnie poprawiam konfigurację samby i trafiłem na problem wynikający z tego, że nazwa jednego z katalogów skopiowanych z widows zawiera spację. Linux nie „widzi ” takiego katalogu. Jak sobie z tym poradzić?

  4. admin pisze:

    Linux raczej powinien widzieć taki folder, żeby do niego wejść z konsoli trzeba go tylko ująć w cudzysłów, np. cd „~/moj folder”. Ewentualnie zmienić spacje na _

    • stasiakk pisze:

      Lub użyć znaku \

      np:

      cd ~/moj\ folder

      znak \ należy użyć przed niektórymi znakami specjalnymi.
      oczywiście ujęcie w „” jest równie skuteczne natomiast użycie \ jest szybsze jeżeli uzyskujemy dostęp z konsoli.

  5. LinuxMaster pisze:

    Nice work, if you can keep it is english will be a great help for the users.

    For more Linux technical tips visit

    http://www.linuxmatters.info

  6. Azrael pisze:

    Super artykuł, zaczynam z linuxem i dla mnie to było przejrzyste i zrozumiałe. Dzięki!

  7. Przypadek pisze:

    Przez przypadek przeczytałem:)

    Świetna robota, oby tak dalej.

  8. Dunpeal pisze:

    Czy samba przydziela automatycznie przestrzeń dyskową? Jak ograniczyć przestrzeń dyskową dla konkretnego zasobu? Co jak podepnę kolejny dysk twardy? Jak go podzielić z poziomu Samby (jeśli tylko jego chciałbym rozdzielić dla serwera plików)? Dzięki za odp.

    • admin pisze:

      Najlepiej ograniczyć wielkość udostępnionego folderu z poziomu linux, za pomocą programu quota. Co do podziału osobnego dysku to można np. stworzyć osobne partycje z odpowiednią wielkością (gparted), ale lepiej chyba jednak użyć quoty.

      • Dunpeal pisze:

        Dzięki za odpowiedź. Ale jak utworzyć zasób na nowym dysku? Jest pod montowany i widzę go ale jak tworzę nowy katalog to tworzy się na dysku starym, a nie nowym. W windzie wchodzę w konkretną partycję i po kłopocie. A pod linem jak to będzie? Quota zapewni mi ograniczenie dla użytkowników jedynie. Czy się mylę?

        • admin pisze:

          Na dysku musi być sformatowana partycja, wtedy jest widoczna w folderze Miejsca lub Komputer, (ubuntu) a jak chcesz udostępniać na tym dysku pliki, to trzeba dodać do auto startu regułkę, żeby montował dodatkowy dysk w jakimś katalogu.

  9. NEW pisze:

    Czy Samba może też działać jako serwer gier?

    • admin pisze:

      Serwer gier to zupełnie inna bajka, nie jestem w tym ekspertem, ale żeby postawić np. serwer pod csa, trzeba zainstalować odpowiednią usługę na linuxie i uruchomić ją na jakimś porcie.

  10. VQR_Viator pisze:

    Czy nie można wyłączyć tego pingwiniego tła? jest straszne ;(

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>