Samba

Pavel Kříž, kriz@math.muni.cz

Obsah

Úvod

Samba je sada nástrojů pro sdílení prostředků, jako jsou tiskárny nebo soubory v sítí. Jedná se o open source software distribuovaný pod licencí GNU, který implementuje protokol SMB, u jehož vzniku stála v polovině 80. let firmy IBM. Rozhraní pod názvem NetBIOS neslo základní ideu o propojení počítačů a sdílení dat mezi nimi. V 90. letech začala firma Microsoft ve svých sítích používat upravenou verzi protokolu SMB/CIFS. Byly zde doplněna třeba podpora linkování a použití komunikace přes protokol TCP.

Funkce démonů Samby

smbd
Démon zodpovědný za správu sdílených prostředků mezi počítačem se serverem Samba a jeho klienty, více...
nmbd
Démon je jednoduchý jmenný server NetBIOS a WINS. Implicitní nastavení NetBIOS name počítače je hostname. Účastní se browsingu, může přebírat roli local master browser nebo domain master browser.

Programové vybavení Samby

smbclient
Klient, který přistupuje ke zdrojům poskytovaných serverem Samba.
smbtar
Program pro zálohování sdílených dat, podobný nástroji tar.
nmblookup
Program, který provádí vyhledávání jmen pomocí protokolu NetBIOS a TCP/IP.
smbpasswd
Program pro správu uživatelů a hesel.
smbstatus
Program podává informace o aktivních síťových spojeních ke sdíleným prostředkům.
testparm
Nástroj pro ověření správnosti konfiguračního souboru smb.conf.
testprns
Nástroj pro testování tiskáren, zda jsou démonem Samby rozpoznatelné.

SMBD

Démon je zodpovědný za autentizaci uživatelů, povolování prostředků a poskytování dat. Obsluhuje veškerou komunikaci mezi serverem a klienty. Standardně běží na portu TCP 139. Pro každou klientskou žádost o spojení vytváří nový proces, který běží až do chvíle ukončení spojení. Zasláním signálu HUP se vynutí opětovné načtení konfiguračního souboru. Všechna otevřená spojení zůstavání ovšem aktivní, změna konfigurace je neovlivní.

-D
Tento parametr spustí smbd jako daemon. Pokud není specifikován smbd se NESPUSTÍ jako daemon (neběží na pozadí...)
-a
Přepsat log soubory, není-li spesifikován, logy jsou přidávány na konec.
-d číslo
debuglevel - číslo od 0 do 10 - větší číslo znamená více informací.
-l jméno souboru
jméno log souboru
-p číslo
číslo portu - standardně 139
-s jméno souboru
konfigurační soubor - standardně /etc/samba/smb.conf

Konfigurace

Veškerá konfigurace Samby je soustředěna do jediného souboru smb.conf. Obsahově je soubor rozdělen do sekcí, jejichž jména jsou uzavřena v hranatých závorkách. Každá sekce definuje jednotlivé prostředky pro sdílení.

[nazev_sdileni_1]
nastaveni1 = hodnota
nastaveni2 = hodnota1, hodnota2
nastaveni3 = hodnota1 hodnota2

[nazev_sdileni_2]
# komentar 1
; komentar 2
vice radkovy \
  zapis
SAMBA v konfiguracnim souboru nerozlisuje VeLiKoSt pismen. POZOR na cesty k UNIX filesystemum !!!

Rezervované jména sekcí se speciálním významem

[global]
Globální konfigurace serveru Samba a definice implicitních nastavení pro sekce sdílení. Jedná se o nepovinnou sekci.
[homes]
Sdílení domovských adresářů. Požadavek na sdílení [login] je nejprve porovnán podle jména. Pokud takové jméno neexistuje, vyhledá sdílení [homes] a provede autentizaci uživatele.
[printers]
Sdílení tiskáren. Obdobný postup jako u domovských adresářů. K porovnání sdílení tiskáren využívá server soubor /etc/printcap.

Vybrané nastavení

Nastavení rozdělujeme na Globální, která výhradně ovlivňují chování samotného serveru Samba a na Sdílení, která mají vliv na jednotlivá sdílení.
Celkový konfigurace serveru Samba přesahuje počet 200 nastavení, které jsou nad rámec tohoto textu. Uvedeme si proto jen některé z nich.

Globální
config file = /path/to/smb.conf
Specifikace konfiguračního souboru. Pokud soubor není dostupný, server použije soubor /etc/samba/smb.conf
Př. config file = /usr/local/samba/smb.conf.%m – Makro %m nahrazuje NetBIOS jméno klientského počítače.
netbios name = erigona
Nastaví NetBIOS jméno serveru Samba.
server string = Server %v on %L
Popisný řetězec nebo také komentář.
Výchozí nastavení server string = Server %v.
host allow = seznam jmen pocitacu
Specifikuje počítače, které se mohou připojit k serveru Samba.
host deny = seznam jmen pocitacu
Specifikuje počítače, které nemají povolen přístup k serveru Samba.
interfaces = seznam dvojic IP adresa/maska
Specifikuje síťová rozhraní, na kterých bude server Samba odpovídat. Vyžaduje nastavení bind interfaces only = yes.
bind interfaces only = {yes|no}
Výchozí nastavení bind interfaces only = no, viz nastavení interfaces.
default service = jmeno existujicho sdileni
V případě neúspěšného pokusu o připojení ke sdílení dojde k přesměrování na uvedené sdílení.
workgroup = skupina
Definuje skupinu, případně doménu, pro kterou server Samba sdílí prostředky.
Sdílení
path = /path/to/share
Složka pro sdílení disku nebo uložení tiskových úloh.
Výchozí nastavení path = /tmp.
read only = {yes|no}
Přístup pouze pro čtení. .
Výchozí nastavení read only = yes.
writable = {yes|no}
Přístup i pro zápis.
Výchozí nastavení writable = no.
comment = komentar
Komentář sdílení.
browseable = {yes|no}
Nastavení zda se bude sdílení zobrazovat v prohlížecím seznamu.
Výchozí nastavení browseable = yes.
follow symlinks = {yes|no}
Nastavení funkčnosti symbolických linků Unixu.
Výchozí nastavení follow symlinks = yes.
wide links = {yes|no}
Nastavení dostupnosti linků mimo sdílený prostor.
Výchozí nastavení wide links = yes.
hide files = seznam souboru
Seznam souborů, které se zobrazí jako skryté.
Př. hide files = /*.bin/*REAME*/.
hide dot files = {yes|no}
Skryté soubory z Unixu se zobrazí jako skryté soubory ve Win.
Výchozí nastavení hide dot files = yes.
veto files = seznam souboru
Seznam souborů, ke kterým nemá uživatel přístup.
Př. veto files = /*.bin/*REAME*/.
create mask = XXXX
Maximální oprávnění pro soubory vytvářené Sambou .
Výchozí nastavení create mask = 0744.
directory mask = XXXX
Maximální oprávnění pro adresáře vytvářené Sambou .
Výchozí nastavení directory mask = 0755.
force user = jmeno uzivatele
Výchozí uživatel pro uživatele, který přistupuje ke sdílení.
force group = jmeno skupiny
Výchozí skupina pro uživatele, který přistupuje ke sdílení.
valid users = seznam uzivatelskych jmen
Uživatelé, kteří mají přístup ke sdílení.
invalid users = seznam uzivatelskych jmen
Uživatelé, kterým ke přístup ke sdílení odepřen.
invalid users = seznam uzivatelskych jmen
Uživatelé, kterým je přístup ke sdílení odepřen.
quest ok = {yes|no}
Povolení přístupu bez autentizace. Použijí se práva uživatele nobody. Změnu uživatele lze předefinovat nastavením guest account.
Výchozí nastavení guest ok = no.
guest only = {yes|no}
Umožňuje pouze přístup anonymního uživatele. Předefinuje nastavení guest account
Výchozí nastavení guest only = no.

V závěru zmíníme možnost Samby pracovat v sítích Windows jako primární řadič domény a možnost komunikace s klienty pomocí ssl.

Literatura