Personal tools
You are here: Home Služby Aplikace Samba popis aplikace samba

Samba


Obsah


Úvod

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.


Porty

Samba pro svou funkci využívá následující porty:

  • 137/udp - překlad jmen
  • 138/udp - zjišťování seznamu sdílených prostředků
  • 139/tcp - přístup ke sdíleným prostředkům
  • 445/tcp - přímý přístup ke sdíleným prostředkům přes TCP/IP (od MS Windows 2000)

Instalace

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.


Spuštění

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.


Hlavní části a testovací nástroje

Samba se skládá ze dvou hlavních částí:

  • smbd - daemon, který naslouchá na zmíněných portech a po připojení klienta spustí nový proces, v němž je daný klient obsluhován. Po odpojení klienta se nový proces ukončí.
  • nmbd - daemon zodpovědný za překlad jmen stanic na adresy (Windows Internet Name Service - WINS)

Samba dále obsahuje několik důležitých pomůcek, které se hodí při konfiguraci i samotném užívání:

  • smbclient - klient, sloužící hlavně pro testování konfigurace serveru. pro normální použití je celkem nevhodný.

    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
  • smbmount/smbfs - jádra verze 2.6.x v sobě obsahují podporu protokolu CIFS, tudíž pro použití je nutné tuto volbu při kompilaci jádra povolit. Pokud je podpora povolena, můžete sdílený adresář připojit pomocí následujícího příkazu:
      mount -t smbfs -o "username=<uzivatel>,password=<heslo>,codepage=<stranka>" //<server>/<sdileny_prostredek> /<kam_pripojit>

    resp.:

    mount -t smbfs -o username=xxx,password=xxx //xxxxxx/xxxmistoxx /xxxkamtochcinamountovat


  • Do /etc/fstab se zápis provádí takto:
      //<server>/<sdileny_prostredek> /<kam_pripojit> smbfs username=<uzivatel>,password=<heslo>,codepage=<stranka> 0 0
  • smbpasswd - nástroj pro přidání/mazání uživatelů, změnu hesel či povolení/zakázání uživatelského účtu. Příklady přidání nového uživatele
      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.

  • smbstatus - výpis aktuálních SMB spojení
  • ... a mnoho dalších (viz man 7 samba)

Popis konfigurace

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]
    obsahuje volby, které se týkají celého serveru, a výchozí hodnoty pro volby jednotlivých služeb. Základní globální volby jsou:
    • workgroup - název pracovní skupiny/domény
    • netbios name - NETBIOS název počítače
    • security - zabezpečení
      • share - heslo pro zápis a pro čtení (sdílení ve W95/98)
      • user - uživatelské jméno + heslo
      • domain - autentizace oproti doméně NT
      • server - autentizace oproti jinému serveru
      • ads - autentizace oproti active directory
    • map to guest - kdy se má uživatel namapovat na uživatele guest
    • guest account - název účtu uživatele guest
    • log file - jméno logovacího souboru

    Nejdůležitější volby sdílených prostředků:

  • writable (read only) - je zapisovvatelný
  • browseable - je viditelný (zobrazí se v seznamu sdílených prostředků pro daný server)
  • printable - jedná se o tiskárnu
  • public - je veřejný (přístupný pro kohokoliv)
  • path - cesta ke sdílenému prostředku
  • hosts allow - povolit jen z těchto klientů
  • valid users - povolit jen tyto uživatele
# sdílení domovských adresářů
[homes]
comment = Domovské adresáře
read only = No
# povol zápis
map archive = No
map hidden = No
# Zakázat mapování dosových atributů na executable bit --
# pozn: nevím o někom, kdo je poutřebuje :-)
map system = No
browseable = No
# zde je vyjimka z pravidla, ikdyž je zde no,
# tak uživatel uvidí svůj domovský adresář,
# jestliže globální hodnota je yes


 

:

  [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:

  • [global] - nastavení pro všechny ostatní sekce
  • [homes] - automatické vytvoření sdílených adresářů pro stávající unixové uživatele
  • [printers] - nastavení pro všechny ostatní tiskárny

Další položky nastavení, které při řešení úkolu určitě použijete:

  • workgroup - nastavení pracovní skupiny, ve které server bude, případně domény (při security=domain)
  • security - toto nastavení určuje druh ověřování uživatelů. Výchozí nastavení, které je většinou použito, je nastavení user, kdy pro připojení k serveru je potřeba zadat správné uživatelské jméno a heslo (kromě guest přístupu). Další z možných nastavení jsou share, domain, server a ads. Pro jejich popis se podívejte do oficiálního HOWTO.
  • hosts allow - pomocí tohoho nastavení můžete omezit přístup na úrovni IP adres, případně jmen strojů
  • username map - soubor obsahující mapu unixových uživatelů na samba uživatele. Jeden unixový uživatel může být namapován na více Samba uživatelů.
  • guest account - uživatel, který bude přistupovat k prostředkům označeným guest ok
  • browseable - prostředek bude zobrazen ve výpisu prostředků
  • writable - prostředek je zapisovatelný (lze do sdíleného adresáře zapsat/měnit soubory)
  • valid users - kteří uživatelé mají přístup k danému prostředku. Lze zadat i název skupiny ve tvaru @skupina.
  • guest ok - k tomuto prostředku lze přistoupit bez platného hesla. Pro přístup se použije účet guest account.
  • create mask - maska, která se aplikuje na práva, která chce uživatel nastavit pro daný soubor. Použije se bitový AND, tudíž práva, která v této masce nejsou nebudou nastavena (a naopak).

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).

TIPY:

Sdileni z ntfs na linux
 mount -t cifs //jmeno_pocitace/sdilena_data /mnt/nejaky_adresar
smbclient -L  pocitac  vypise dostupna pripojeni u vzdaleneho PC


  • [homes]
    řídí sdílení domovských adresářů uživatelů
  • [printers]
    to stejné pro tiskárny


Odkazy a literatura

Document Actions
by Petr Kubeš last modified 2006-09-01 08:19