Server Message Blocks je jednoduchý protokol původně navržený firmou IBM pro DOS kvůli přístupu k souborům přes LAN, dnes používaná verze byla upravena a rozšířena Microsoftem. V roce 1998 (přibližně v době, kdy Sun ohlásil WebNFS) začal Microsoft prosazovat rozšíření SMB a jeho přejmenování na CIFS (Common Internet File System). V CIFS přibyla podpora pro symbolické i pevné odkazy, přenosy větších souborů a spojování počítačů bez NetBIOSu (od Windows 2000). Při první úloze jste určitě viděli podporu CIFS v jádře, je tam od 2.6.
Network Basic Input/Output System byl navržen pro IBM v roce 1983 pro malé sítě, přes jeho API můžou komunikovat aplikace po lokální síti. Vzhledem k době návrhu a svému původnímu účelu sám o sobě neumožňuje komunikaci po routovaných sítích, proto je zapouzdřován (nejdříve do Token Ringu, pak do IPX, nyní do TCP/IP takzvaný NetBIOS over TCP/IP neboli NetBT). Při přihlášení do sítě pošle každý počítač broadcastem svoje NetBIOS jméno a ostatní jej zkontrolují se svým. Pokud se jména shodují, pošlou novému počítači zpět informaci o kolizi a ten musí jméno změnit nebo se od NetBIOS sítě odpojit. Ve velkých sítích ale hodně broadcastového provozu může zbytečně zatěžovat linku, proto se používají tzv. NBNS (NetBIOS Name Server).
služba běžící na Windows NT nebo Sambě, která pracuje jako "jmenný server" pro lokální síť. Jména počítačů se zasílají k ověření a překladu WINS serveru místo toho, aby šly všechny takové dotazy broadcastem. Tím se uleví síťovým linkám a předejde případným problémům s duplicitními názvy počítačů WINS server nevrátí na dotaz dvě různé odpovědi (což by se mohlo stát při dvou stejně pojmenovaných počítačích na síti).
WINS v Sambě zapneme parametrem wins support = yes
. Je pak ale potřeba nastavit IP serveru i na stanicích.
Návod pro Debian:
Hlavní konfigurační soubor je v Debianu /etc/samba/smb.conf, vypadá jako ini-soubor. Je rozdělený do samostatných sekcí začínajících [nazev], které se vždy týkají jednotlivých sdílených položek. Speciální význam mají sekce [global] s hlavní konfigurací pro celý server, dále [homes], [printers]
Pokud přidáváme uživatele do Samby, je dobré si uvědomit, že Samba při přihlašování vyžaduje, aby byl uživatel zaveden i v systému (třeba v /etc/passwd).
Vzorový konfigurační soubor:
[global] netbios name = doto-beta ; jmeno pocitace workgroup = lab.fi.muni.cz ; skupina server string = Popis pocitace ; popis unix charset = ISO8859-2 ; kodovani security = user ; share: nekontroluje se nic, ; user: kontrola hesel proti passwd backend (defaultne tdbsam), ; domain: clen NT domeny (jmeno stejne jako workgroup), klienty autorizuje domenovy radic ; ads: clen AD domeny, je nutne nastavit parametr REALM = domena encrypt passwords = true ; ukladat hesla v hashovane podobe wins support = yes ; fungovat jako "lokalni jmenny server" i pro ostatni pocitace passdb backend = tdbsam guest ; kam ukladat hesla unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n . ; při zmene hesla v domene zmenit i heslo v /etc/passwd, passwd program a passwd chat ; urcuji jakymi prikazy se samba pokusi heslo uzivatele nastavit [homes] ; domovske adresare, pro kazdeho uzivatele se vytvori skryte sdileni s jeho nazvem comment = Domovske adresare browseable = no ; tohle sdileni nebudeme vypisovat v seznamu sd. adresaru writable = yes create mask = 0700 directory mask = 0700
k jednotlivým sekcím můžeme docela jednoduše omezit přístup pomocí těchto direktiv:
write list = uzivatel @skupina hosts allow = pocitac @domena writable = no guest ok = yes valid users = uzivatel @skupinadalší zajímavé direktivy:
browseable = yes force user = uzivatel_ktery_bude_vlastnit_vsechny_vytvorene_soubory
smbd – hlavní část Samby, zajišťuje samotné sdílení souborů, tiskáren, ověřování klientských hesel proti lokální databázi
nmbd – slouží jako NetBIOS name server, překládá NetBIOS adresy na IP a naopak. Používá ho smbd, ale pokud v Sambě zapneme WINS tak funguje i jako WINS server pro ostatní počítače v subnetu (WINS server udržuje seznam zaregistrovaných jmen počítačů, zakazuje registraci duplicitních jmen a překládá NetBIOS jména na IP a naopak pro počítače v podsíti). Je nutný k běhu smbd
winbindd – je potřeba pokud běží Samba jako součást NT nebo Active Directory domény nebo pokud chceme ověřovat lokální uživatele proti NT/AD doméně. Umí taky mapovat Unixové UID/GID na Windowsí SID.
zeus:/etc/samba# smbclient -L godzilla Password: Domain=[GODZILLA] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Sharename Type Comment --------- ---- ------- IPC$ IPC Vzdálený IPC Games Disk Domain=[GODZILLA] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Server Comment --------- ------- Workgroup Master --------- ------- zeus:/etc/samba# smbclient //godzilla/Games Password: Domain=[GODZILLA] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] smb: \> cd Tetrifast smb: \Tetrifast\> ls . D 0 Tue Mar 8 21:11:08 2005 .. D 0 Tue Mar 8 21:11:08 2005 DEFAULT.TNP A 378 Sun Jan 26 19:01:42 1997 DATA D 0 Tue Mar 8 21:11:30 2005 tetrifast.exe A 186368 Fri Mar 23 16:54:00 2001 TETRINET.TXT A 24648 Sat Feb 1 12:34:44 1997 tetrinet.ini A 490 Thu Mar 24 22:42:06 2005 tetrinet.ban A 2 Thu Mar 24 22:42:06 2005 36238 blocks of size 524288. 1139 blocks available smb: \Tetrifast\> get tetrifast.exe getting file \Tetrifast\tetrifast.exe of size 186368 as tetrifast.exe (1046.0 kb/s) (average 1046.0 kb/s) smb: \Tetrifast\> exit
zeus:/etc/samba# smbpasswd -a pes New SMB password: Retype new SMB password: Added user pes.
zeus:/etc/samba# mount -t smbfs //godzilla/Games /mnt/Games/ -o 'username=jmeno,password=heslo,iocharset=iso8859-2,codepage=cp852'zápis do /etc/fstab:
//godzilla/Games /mnt/Games/ smbfs username=jarek,password=,iocharset=iso8859-2,codepage=cp852 0 0