Samba – jest darmowym serwerem plików oraz drukarek, dostępna praktycznie dla każdego systemu. Dostępna jest na licencji GPL (GNU General Public License). Samba korzysta z implementacji protokołu SMB(Server Message Block). [Wikipedia...]

W praktyce Samba umożliwia korzystanie z zasobów systemu Linux komputerom z zainstalowanym systemem Windows oraz zasobom Windows komputerom z zainstalowanym Linuksem. W pierwszej części zainstalujemy Sambę i skonfigurujemy ją do udostępniania zasobów dla komputerów z systemem Windows. Instalacja Samby w Debianie sprowadza się do wydania polecenia:

apt-get install samba

Po zainstalowaniu samby pora na jej konfigurację. W katalogu /etc/samba znajduje się plik smb.conf. W nim wpisujemy podstawową konfigurację usługi. Standardowo po instalacji plik ten jest wypełniony przykładowymi danymi, które można wykorzystać. Na potrzeby ćwiczenia utworzymy całą nową konfigurację od początku. Do prawidłowego funkcjonowania samby jako serwera udostępniającego pliki niezbędne jest zdefiniowanie przynajmniej dwóch sekcji w pliku konfiguracyjnym. Pierwsza sekcja, to ustawienie parametrów globalnych:

[global]

    workgroup = ZST

    security = user

Definiujemy tutaj przynajmniej grupę roboczą w ramach której będzie funkcjonowała Samba oraz typ autoryzacji. W powyższym przykładzie uwierzytelnianie ustawiono na poziomie użytkownika, czyli trzeba będzie podać nazwę użytkownika i hasło do zasobu. Możliwe jest również udostępnianie na poziomie zasobu.

Każdy użytkownik może mieć dostęp do swojego katalogu domowego na serwerze linuksowym. W celu udostępnienia katalogów domowych użytkowników musimy zdefiniować kolejną sekcję:

[homes]

    comment = Katalogi domowe użytkowników 

    browseable = no

    writable = yes

Po dokonaniu tego wpisu Samba udostępni katalogi domowe użytkowników. Dysponując wypełnionym plikiem konfiguracyjnym możemy uruchomić Sambę wydając polecenie:

/etc/init.d/samba start

Pozostał jeszcze jeden krok do wykonania, by nasze udziały były dostępne z systemu Windows. Należy zsynchronizować konto Samby z kontem Linuksa. Do tego służy polecenie:

smbpasswd -a nazwa_użytkownika

gdzie nazwa_użytkownika to login z istniejącego konta w Linuksie.

Dodamy jeszcze jedną sekcję w pliku konfiguracyjnym, która zdefiniuje katalog dostępny dla wszystkich użytkowników:

[public]

    comment = Katalog dostępny dla wszystkich

    path = /home/public

    public = yes

    writable = no

    quest ok = yes

po aktualizacji pliku konfiguracyjnego należy wykonać restart Samby:

/etc/init.d/samba restart

możliwe jest również przeładowanie ustawień Samby bez restartu usługi:

/etc/init.d/samba reload

Efekt końcowy będzie taki sam, natomiast restart wyłączy usługę i włączy ją ponownie, a reload spowoduje modyfikację parametrów bez wyłączenia usługi. W tym momencie możemy sprawdzić funkcjonowanie Samby na komputerze z systemem Windows. Jeżeli nasz system Windows jest w tej samej grupie roboczej co Linux z zainstalowaną Sambą, to Serwer linuksowy powinien być widoczny w otoczeniu sieciowym. Poniżej pokazano widok otoczenia sieciowego z widocznym serwerem linuksowym.

 

Po kliknięciu na serwer pojawi się lista udziałów Samby.

Jak widać udostępniony został udział „public” oraz „kasia” jako katalog domowy użytkownika. Udział „homes” jest aliasem udziału „kasia” - prowadzi do tego samego katalogu. W sytuacji, gdy zdefiniujemy widoczność katalogów domowych na „no”, homes nie pojawi się na liście zasobów. Zasób sieciowy Samby możemy zamapować tak samo jak zasób udostępniony przez system Windows. Wystarczy z menu podręcznego wybrać opcję „mapuj dysk sieciowy...”.

 

Wybieramy literę dysku i mamy podłączony zasób sieciowy:

 

Powyższy opis nie wyczerpuje tematu konfiguracji Samby. Jest to jedynie konfiguracja minimum, która umożliwia uruchomienie Samby. W samej sekcji „global” można „dopisać” wiele elementów konfiguracyjnych. Przykładowo można określić na jakich interfejsach będzie nasłuchiwała Samba, czy w jaki sposób mają być przechowywane hasła.

Na zakończenie zamontujemy zasób udostępniony w systemie Windows z poziomu klienta linuksowego. Pierwszym krokiem będzie udostępnienie jakiegoś zasobu w Windowsie. Tworzymy nowy folder np. c:\dane, następnie z menu podręcznego wybieramy opcję udostępnij. Udostępniamy zasób dla wszystkich do odczytu i zapisu. Przechodzimy do Debiana i montujemy udział sieciowy:

mount -t cifs //ip_komputera/nazwa_zasobu /mnt -o username=login,domain=nazwa_grupy

w moim przypadku:

mount -t cifs //192.168.14.20/dane /mnt -o usermane=wojtek,domain=zst

system poprosi o hasło użytkownika „wojtek” na komputerze z Windowsem i po podaniu poprawnego hasła w katalogu /mnt zostanie zamontowany udział sieciowy. W przypadku niepowodzenia należy sprawdzić, czy z Sambą zainstalował się pakiet cifs-utils. Jeśli nie, należy go zainstalować:

apt-get install cifs-utils

W kolejnej części skonfigurujemy Sambę jako kontroler domeny Windows. Jest to operacja trudniejsza wymagająca większego zaangażowania i doświadczenia.