Samba je skupina program�, zalo�en� na obecn�m klient/server protokolu SMB(Server Message Block) vyvinut�m firmami Microsoft, IBM, Intel a 3COM a je dostupn� pod GNU GPL licenc�. P�vodn�m autorem je Andrew Tridgell. Ned�vno byl tento protokol SMB p�ejmenov�n na CIFS (Common Internet File System). Protokol SMB se pou��v� pro komunikaci mezi pracovn�mi stanicemi a serverem Windows a OS/2. UNIXov� syst�my v�ak pou��vaj� NFS, proto vznikla Samba. Jev� se toti� v�hodn�j�� a jednodu��� nau�it UNIX komunikovat s Windows pomoc� jejich nativn�ho protokolu, ne� by tomu bylo naopak. Samba je velice portabiln�, tak�e se s n� m��eme setkat na �ad� syst�m� jako nap��klad Linux, FreeBSD, Solaris a dal�� UNIXov� platformy. Samba poskytuje n�sleduj�c� slu�by:
netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp swat 901/tcp # Samba Web Administration Tool
NetBIOS (Network Basic Input/Output System) poch�z� od firmy IBM, kter� ho vymyslela v roce 1985 jako API (application programming interface) pro pr�ci ve vlastn�ch s�t�ch, kter� poskytovalo z�kladn� funkce na propojen� aplikac� a sd�len� dat s ostatn�mi stanicemi. Je�t� t�ho� roku IBM vydalo n�sledovn�ka NetBEUI (NetBIOS Extended User Interface), kter� umo��oval 15 p�smen� n�zvy a a� (255) uzl� na s�ti.
Proto�e TCP/IP pou��v� k ozna�ov�n� stroj� ��seln� adresy a NetBIOS jenom jm�na, vznikly dokumenty RFC 1000 a RFC 1002, kter� popisuj�, jak by m�l NetBIOS pracovat na TCP/UDP s�t�ch. Tyto dokumenty popisuj� v�echny implementace, v�etn� Samby a nativn�ho protokolu Windows.
WINS (Windows Internet Name Service) je implementace NetBIOS nameserveru od firmy Microsoft. Jako takov� m� stejn� charakteristiky jako NetBIOS. Je jednoduch�, tak�e lze m�t pouze jednoduch� n�zvy skupin a po��ta��. Jakmile se WINS klient p�ipoj� k s�ti, ohl�s� se pods�ti UDP datagramem na portu 137 a je mu p�id�lena IP adresa. Vysl�n� datagramu opakuje ka�d�ch 12 minut. Server tyto datagramy odchyt�v� a aktualizuje sv� tabulky. Aktivn�mu serveru se ��k� prim�rn� WINS server. Lze nainstalovat i sekund�rn� WINS server, kter� v p��pad� nedostupnosti serveru primarn�ho p�ebere jeho roli. To, kter� WINS server bude prim�rn� a kter� sekund�rn� je statick� informace a je pot�eba ji nastavit p��mo na pracovn�ch stanic�ch. Prim�rn� a sekund�rn� server synchronizuj� z�znamy periodicky. Samba m��e b�t prim�rn�m WINS serverem, ale ne sekund�rn�m.
Krom� ji� zm�n�n�ch d�mon� obsahuje bal�k Samba je�t� n�sleduj�c� programy:
make_smbcodepage - vytv��� defini�n� soubory SMB k�dov�ch str�nek pro smbd server.
nmblookup - umo��uje dotazy na NetBIOS jm�na p�es TCP/IP s��.
smbclient - klinet podobn� oby�ejn�mu ftp klientovi. Umo��uje p�ipojovat se ke sd�len�m zdroj�m.
smbmount - p�ipojuje Linuxov� SMB filesystem. Pracuje pouze pod Linuxem a smbfs mus� b�t podporov�n j�drem.
smbpasswd - m� stejnou funkci jako b�n� passwd program, udr�uje odd�lenou datab�zi hesel pou��van�ch Sambou.
smbstatus - program vypisuje aktu�ln� p�ipojen� a stav Samba serveru.
smbtar - z�lohuje data ze sd�len�ch disk�, m� podobnou syntaxi jako Unixov� tar.
smbumount - smbfs umount pro b�n� u�ivatele. Pracuje jako suid root.
swat - Samba Web Administration Tool - umo��uje konfigurovat Sambu p�es webov� prohl��e�.
testparm - program na kontrolu syntaxe konfigura�n�ho souboru (smb.conf).
testprns - program pro kontrolu tisk�ren v souboru printcap.
Nejprve Sambu st�hneme z ofici�ln�ch str�nek projektu (www.samba.org), pot� n�sleduje rozbalen�. Aktu�ln� verze je 3.0.0.:
# wget http://samba.kn.vutbr.cz/samba/ftp/samba-3.0.0.tar.gz # tar xzf samba-3.0.0.tar.gz # cd samba-3.0.0/sourceNyn� p�ejdeme ke kompilaci ze zdrojov�ch soubor� obvykl�m zp�sobem:
# ./configure [parametry] # make # make installDostupn� parametry se z�skaj� parametrem --help. Za zm�nku stoj� n�sleduj�c�:
--with-ssl --with-pam --with-ldap --with-quotas --with-configdir=/etc/samba adres�� pro konfigura�n� soubory --enable-cups zapne podporu tisku pomoc� Common Unix Printing System --with-krb5=base-dir podpora Kerberos autentifikace --with-acl-support podpora Access Control Lists pro podrobn�j�� nastavov�n� p��stupov�ch pr�v(je nutn� podpora ACL na souborov�m syst�mu)Spole�n� se Sambou se nainstaluje tak� SWAT (Samba WEB administration tool).
Konfigura�n� soubor je obvykle v adres��i /etc/samba (linux) nebo /usr/local/etc (FreeBSD). N�sleduj� uk�zky konfigurace:
Proto�e UNIXov� syst�my pou��vaji znakovou sadu ISO8859-2(p��padn� UTF-8) narozd�l od Windows, kter� pou��vaj� WIN-1250, je t�eba zajistit spr�vn� ukl�d�n� jmen na disc�ch. Slou�� k tomu konfigura�n� volby client code page a character set:
[global] ## z�kladn� nastaven� serveru workgroup = PATRO7 # NT-Domain-Name nebo Workgroup-Name server string = Leisyho Samba server # koment�� hosts allow = 192.168.0. 127.0.0.1 # omezen� p��stupu log file = /var/log/samba/log.%m # log zvlṻ pro ka�d� stroj log level = 2 # �rove� logov�n� max log size = 500 # v kB character set = ISO8859-2 security = user # pro jednoduch� sd�len� pou��t 'share' socket options = TCP_NODELAY # optimalizace v�konu interfaces = 192.168.0.3/24 # omezen� Samby dle rozhran� # u�ivatel� Unixu mohou namapovat sv� jm�na na jin� SMB u�ivatelsk� jm�na username map = /etc/samba/smbusers ## Proch�zen� s�t� # Local Master je stroj, kter� poskytuje proch�zen� lok�ln� subs�t� # pokud zde nenastav�me yes, prob�hnou na tento post volby local master = yes # Domain Master je stroj, kter� slu�uje seznamy z jednotliv�ch # pods�t� a umo��uje tak proch�zen� v�ce pods�t� ; domain master = yes ## Wins # Samba m��e jednat jako NetBios Name Service server nebo klient ; wins support = yes # Samba jako server ; wins server = 192.168.1.1 # Samba jako klient ## Hesla a Authentizace encrypt passwords = yes # kryptov�n� hesel pro Win98 a v�� unix password sync = yes # synchronizovat unixov� hesla s hesly Samby ; pam password change = yes # unixov� hesla m�nit pomoc� PAM ## Domain Control ; domain logons = yes # Samba jako Primary Domain Controller ; logon script = %m.bat # logovac� skripty zvlṻ pro jednotliv� stroje ; logon script = %U.bat # logovac� skripty zvlṻ pro jednotliv� u�ivatele ## tisk load printers = yes # automaticky na�te p�i startu tisk�rny ; printing = bsd # tiskov� subsyst�m: bsd, sysv, plp, lprng, aix, hpux, qnx ; printer admin = root, +ntadmin # u�ivatel� a skupiny administruj�c� tisk�rny ## Winbind(umo��uje u�ivatel�m Windows NT Domain logov�n� na unixov� stroj) ; winbind uid = 50000-65000 # uid rezervovan� pro WinNT u�ivatele ; winbind gid = 50000-65000 # gid rezervovan� pro WinNT u�ivatele ; winbind template homedir = /home/%D/%U # home adres��e WinNT u�ivatel� ; winbind template shell = /bin/sh # shell WinNT u�ivatel�
Ka�d� sd�len� prost�edek m� v smb.conf vlastn� sekci. Jedinou v�jimku tvo�� sekce [homes] a [printers], kter� zastupuj� skupiny sd�len�ch prost�edk�.
[homes] comment = Home Directories browseable = yes writable = yes valid users = %S create mode = 0664 directory mode = 0775 # pomoc� sekce printers m��eme nastavit sd�len� v�ech tisk�ren bez nutnosti uv�d�t zde ka�dou z nich [printers] comment = All Printers path = /var/spool/samba browseable = no # Set public = yes to allow user 'guest account' to print guest ok = no writable = no printable = yes # p��klad adres��e pro do�asn� soubory [tmp] comment = Temporary files path = /tmp read only = no public = yes # tisk�rna p��stupn� jen n�kter�m u�ivatel�m [HPlaser] comment = HP LaserJet valid users = root, user path = /homes/laser printer = laser public = no writable = no printable = yes # nasd�len� disku Windows pro u�ivatele guest [deimos] comment = R.I.P. Tudle sou mrtvy WINDOZE(pristupne pres guest uzivatele) path = /mnt/deimos/ public = no available = yes browseable = yes writeable = no guest ok = yes username = guest
Zda b�� na po��ta�i Samba server ozkou��me p��kazem smbclient -L localhost. Kompletn� p�ehled mo�n�ch parametr� z�sk�me vyps�n�m tohoto p��kazu bez parametr�.
Spou�t�n� prov�d�me ru�n� superu�ivatelem pomoc� t�chto p��kaz�:
# /usr/local/samba/bin/smbd -D # /usr/local/samba/bin/nmbd -D
www.samba.org
SMB howto
O'Reilly: Using Samba
http://whatis.techtarget.com/
The Requests for Comments (RFC) documents
Understanding the Network Neighborhood