Samba je open source implementace protokolu Server Message Block (=>SaMBa), což je protokol pro sdílení souborů a tiskáren. Jeho počátky lze nalézt v roce 1985, kdy ho uvedlo IBM pod názvem IBM PC Network SMB Protocol. Protokol se nachází v OSI modelu na aplikační a prezentační vrstvě, pro nižší vrstvy se využívá NetBIOS - Network Basic Input/Output System. Velkou nevýhodou byla možnost komunikace pouze na lokální síti, pro směrování bylo potřeba zapouzdřit NetBIOS do TCP/IP, což se nazývá NetBT, případně NetBIOS over TCP/IP.
Microsoft (a mnoho dalších) SMB dále rozpracoval a v roce 1998 ohlásil novou verzi pod jménem Common Internet File System (CIFS), jehož přínosem je hlavně podpora práce přímo nad TCP/IP.
Díky Sambě mohou systémy UNIXového typu bez problémů komunikovat se systémy Microsoft Windows.
Samba pro svou funkci využívá následující porty:
Pro instalaci je nejjednodušší použít balíčkovací systém Vaší distribuce. Pokud přesto chcete instalaci provést ručně, lze postupovat dle návodu v oficiálním HOWTO.
V distribuci Fedora Core provedeme spuštění takto:
/etc/init.d/smb start
Tento příkaz spustí dva daemony - smbd a nmbd, popsané v další části. Spouštění lze provést i pomocí inetd, případně xinetd. Postup lze nálézt v oficiálním HOWTO.
Samba se skládá ze dvou hlavních částí:
Samba dále obsahuje několik důležitých pomůcek, které se hodí při konfiguraci i samotném užívání:
Při testování úkolu se budou hodit následující příkazy:
Vypsání sdílených prostředků serveru:
smbclient -L <server>
Připojení se ke sdílenému prostředku pod daným uživatelem:
smbclient //<server>/<sdileny_prostredek> -U <uzivatel>
Další možnosti naleznete pomocí:
man 1 smbclient
mount -t smbfs -o "username=<uzivatel>,password=<heslo>,codepage=<stranka>" //<server>/<sdileny_prostredek> /<kam_pripojit>Do /etc/fstab se zápis provádí takto:
//<server>/<sdileny_prostredek> /<kam_pripojit> smbfs username=<uzivatel>,password=<heslo>,codepage=<stranka> 0 0
smbpasswd -a lubik
Dokumentaci k tomuto příkazu zobrazíte pomocí man 8 smbpasswd nebo v oficiálním HOWTO.
Samba podporuje i nastavení hesla klientem a dokáže synchronizovat toto heslo s heslem unixového uživatele.
Konfigurační soubory se ve Fedoře nachází v adresáři /etc/samba/. Hlavní z nich je smb.conf (zkrácená ukázka):
[global] workgroup = PREDATOR server string = Predator Samba Server hosts allow = 10.0.0. security = user username map = /etc/samba/smbusers guest account = smb [homes] comment = Domovske adresare browseable = no writable = yes [printers] comment = Tiskarny path = /var/spool/samba browseable = no guest ok = no [public] comment = Veci pro verejnost browseable = yes writable = no guest ok = yes [tmp] comment = Tady si delejte co chcete path = /tmp read only = no public = yes [sleepyhollow] comment = Ospala dira path = /home/sleepy valid users = lubik kaso public = no writable = yes create mask = 0765 force user = lubik
V konfiguračním souboru lze použít opravdu velké množství nastavení, kompletní přehled získáte pomocí:
man 5 smb.conf
Konfigurace obsahuje tři speciální sekce, které jsou v ukázce zobrazeny:
Další položky nastavení, které při řešení úkolu určitě použijete:
Dalším konfiguračním souborem je soubor smbusers. Obsahuje mapování unixových uživatelů na Samba uživatele. Příklad:
root = administrator admin nobody = guest pcguest smbguest lubik = potvora1 potvora2
Unixový uživatel lubik může pres Sambu přistupovat pod jmény potvora1 i potvora2.
Dále je zde soubor lmhosts, ve kterém se definuje mapování jmen počítačů na IP adresy a soubor smbpasswd, který se upravuje pomocí utility smbpasswd (popis viz příkaz smbpasswd).