Ubuntu Česko Samba

  • Edit
  • Diskuze
  • Info
  • Attachments

Obsah

Úvod

120px-Samba.png

  • je značně populární programový balík dostupný v rámci GNU licence, který implementuje serverovou část protokolu CIFS na klientu s Linuxem. Původně byl balík vytvořen Australanem Andrewem Trigellem, který rozpitval protokol SMB a výsledný kód vydal v roce 1992.

  • Dnes je systém Samba dobře podporován a aktivně vyvíjen pro začlenění další funkcionality. Systém poskytuje stabilní mechanismus pro integraci Windows sítě s Linuxem. Krása Samby spočívá vtom, že je potřeba na Linuxu nainstalovat pouze jeden programový balík, na straně Windows není potřeba instalovat nic.

    Systém CIFS nabízí pět základních služeb:

    • Sdílení souborů

    • Síťový tisk

    • Autentizaci a autorizaci

    • Vyhledávání jmen

    • Oznamování služeb (prohledávání souborových a tiskových serverů)

    Samba neposkytuje pouze soubory na Linuxu pomocí protokolu CIFS, ale může také provádět všechny základní funkce primárního serveru Windows NT 4.0 domény. Samba podporuje některé pokročilé vlastnosti včetně přihlašování do Windows NT domén, předávání profilů uživatelů Windows a sdílení tiskáren pomocí CIFS. Na rozdíl od systému NFS, který je silně provázán s jádrem, Samba nevyžaduje žádné úpravy jádra a běží zcela jako uživatelský proces. Připojí se na porty používané pro příchozí NBT požadavky a čeká na požadavky od klientů na přístup k nějakému zdroji. Poté co je požadavek přijat a autorizován, démon smbd vytvoří kopii sama sebe a pracuje pod uživatelem daného požadavku. výsledkem je, že jsou zachována všechna přístupová práva souboru v Linuxu(včetně skupinových práv).

Instalace Samby

Jednoduchá grafická konfigurace samby

  • sudo apt-get install system-config-samba

Konfigurace Samba serveru

Nastavení uživatelů

  • Néjprvé musíme přidat uživatele, pod kterým se budeme moci přihlašovat do sítě, to provedeme zadáním příkazu v Terminálu:

    sudo smbpasswd -a jmeno_uzivatele
    Pro odstranění uživatele lze zadat do Terminálu:
    sudo smbpasswd -x jmeno_uživatele

    Přehled všech uživatelských účtů je dobře vidět (a zároveň ho lze editovat ) v souboru /etc/samba/smbusers. Ten si můžeme zobrazit v Textovém editoru spuštěným s oprávněním administrátora:

    gksudo gedit /etc/samba/smbusers

    IconsPage/info.png Každý uživatel Samby musí existovat i v systému, nemusí mít nastaveny práva, heslo ani vytvořený adresář. Prostě jenom musí existovat a být zařazen do vhodné skupiny, skupin. V následujícím příkazu vyplňte i vlastní_jméno čímkoliv ať příkaz nechce zadání doplňkových informací o uživateli.

     sudo adduser --quiet --no-create-home --disabled-password  --gecos VLASTNÍ_JMÉNO  --ingroup SKUPINA JMÉNO_UŽIVATELE
    Jeden uživatel je zadaný na třech místech, na toto se často zapomíná. Uživatel se stejným jménem a heslem musí existovat tj. být zadán v Samba serveru a být přihlášen se stejným jménem a heslem na počítači z kterého se chcem k Samba serveru přihlásit a musí existovat i v systému na kterém Samba server běží, ale zde nemusí mít zadané heslo.

    IconsPage/warning.png Pokud jste měli zřízený účet na windows a ten jsme ve správě uživatelů přejmenovali, tak se vám pravděpodobně nepodaří přihlásit k Samba serveru. Stejně tak nesmíme zapomenout že většinou po zřízení účtu ve windows nemá uživatel vytvořené heslo a pokud jsme od koupě počítače ještě nenastavovali uživatele a heslo, tak je uživatelské jméno nějaký OEM nesmysl a heslo také neexistuje. A to se tedy k Samba serveru nepřihlásíme.

    IconsPage/example.png Uživatelské jméno ve Windows XP lze změnit ve skryté nabídce. Není třeba mazat a znovu vytvářet účet. Ve Windows XP zadejte v příkaz control userpasswords2, vyberte účet váš, klikněte na vlastnosti a na kartě Obecné v kolonce Uživatelské jméno upravíte uživatelské jméno účtu dle uživatelského jména v linuxu/sambě. Ještě je potřeba nastavit správně heslo pro tento účet (Ovládací panely -> Uživatelské účty).

Sdílení domovského adresáře s oprávněním jen pro čtení a s autentizací

  • Nejprv si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
    Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
    gksudo gedit /etc/samba/smb.conf
    Nalezneme tento řádek:
    ...
    ;  security = user
    ...
    Změníme ho na:
    security = user
    username map = /etc/samba/smbusers
    • IconsPage/info.png To znamená, že odstraníme středník před security a pod tento řádek přidáme další s textem username map = /etc/samba/smbusers.

    Restartujeme Sambu:
    sudo /etc/init.d/samba restart

    IconsPage/info.png Nebo

    sudo service smbd restart
    A máme hotovo.

Sdílení domovského adresáře s oprávněním pro čtení i zápis a s autentizací

  • Nejprv si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
    Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
    gksudo gedit /etc/samba/smb.conf
    Nalezneme tento řádek:
    ...
    ;  security = user
    ...
    Změníme ho na:
    security = user
    username map = /etc/samba/smbusers
    • IconsPage/info.png To znamená, že odstraníme středník před security a pod tento řádek přidáme další s textem username map = /etc/samba/smbusers.

    Nalezneme tento řádek:
    ...
    # By default, the home directories are exported read-only. Change next
    # parameter to 'yes' if you want to be able to write to them.
      writable = no
    ...
    Změníme ho na:
    # By default, the home directories are exported read-only. Change next
    # parameter to 'yes' if you want to be able to write to them.
      writable = yes
    Restartujeme Sambu:
    sudo /etc/init.d/samba restart
    A máme hotovo.

Sdílení adresáře pro skupinu uživatelů s oprávněním jen čtení a s autentizací

  • Nejprv si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
    Vytvoříme v Terminálu adresář, ke kterému budou mít přístup v síti jen zvolení uživatelé příkazy:
    sudo mkdir /home/group
    sudo chmod 777 /home/group/
    Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
    gksudo gedit /etc/samba/smb.conf
    Nalezneme tento řádek:
    ...
    ;  security = user
    ...
    Změníme ho na:
    security = user
    username map = /etc/samba/smbusers
    • IconsPage/info.png To znamená, že odstraníme středník před security a pod tento řádek přidáme další s textem username map = /etc/samba/smbusers.

    Nakonec souboru přidáme tyto řádky:
     [Group]
      comment = Group Folder
      path = /home/group
      public = yes
      writable = no
      valid users = uzivatel_1 uzivatel_2
      create mask = 0700
      directory mask = 0700
      force user = nobody
      force group = nogroup

    V proměnné valid users napište všechny uživatele mající oprávnění k přístupu do adresáře v path.

    • IconsPage/info.png Název adresáře můžeme zvolit jaký chceme, ne pouze /home/group. Ale nezapomeňte po změně názvu adresáře změnit proměnou path v konfiguračním souboru.

    Restartujeme Sambu:
    sudo /etc/init.d/samba restart
    Nebo:
    sudo service smbd restart
    A máme hotovo.

Sdílení adresáře pro skupinu uživatelů s oprávněním pro čtení i zápis a s autentizací

  • Nejprv si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
    Vytvoříme v Terminálu adresář, ke kterému budou mít přístup v síti jen zvolení uživatelé příkazy:
    sudo mkdir /home/group
    sudo chmod 777 /home/group/
    Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
    gksudo gedit /etc/samba/smb.conf
    Nalezneme tento řádek:
    ...
    ;  security = user
    ...
    Změníme ho na:
    security = user
    username map = /etc/samba/smbusers
    • IconsPage/info.png To znamená, že odstraníme středník před security a pod tento řádek přidáme další s textem username map = /etc/samba/smbusers.

    Nakonec souboru přidáme tyto řádky:
     [Group]
      comment = Group Folder
      path = /home/group
      public = yes
      writable = yes
      valid users = uzivatel_1 uzivatel_2
      create mask = 0700
      directory mask = 0700
      force user = nobody
      force group = nogroup

    V propměnné valid users napište všechny uživatele mající oprávnění k přístupu do adresáře v path.

    • IconsPage/info.png Název adresáře můžeme zvolit jaký chceme, ne pouze /home/group. Ale nezapomeňte po změně názvu adresáře změnit proměnou path v konfiguračním souboru.

    Restartujeme Sambu:
    sudo /etc/init.d/samba restart
    • Nebo:
    sudo service smbd restart
    A máme hotovo.

Sdílení veřejného adresáře s oprávněním jen pro čtení a s autentizací

  • Nejprv si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
    Vytvoříme v Terminálu adresář, ke kterému budou mít přístup v síti všichni uživatelé příkazy:
    sudo mkdir /home/public
    sudo chmod 777 /home/public/
    Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
    gksudo gedit /etc/samba/smb.conf
    Nalezneme tento řádek:
    ...
    ;  security = user
    ...
    Změníme ho na:
    security = user
    username map = /etc/samba/smbusers
    • IconsPage/info.png To znamená, že odstraníme středník před security a pod tento řádek přidáme další s textem username map = /etc/samba/smbusers.

    Nakonec souboru přidáme tyto řádky:
     [public]
      comment = Public Folder
      path = /home/public
      public = yes
      writable = no
      create mask = 0777
      directory mask = 0777
      force user = nobody
      force group = nogroup
    • IconsPage/info.png Název adresáře můžeme zvolit jaký chceme, ne pouze /home/public. Ale nezapomeňte po změně názvu adresáře změnit proměnou path v konfiguračním souboru.

    Restartujeme Sambu:
    sudo /etc/init.d/samba restart
    A máme hotovo.

Sdílení veřejného adresáře s oprávněním pro čtení i zápis a s autentizací

  • Nejprv si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
    Vytvoříme v Terminálu adresář, ke kterému budou mít přístup v síti všichni uživatelé příkazy:
    sudo mkdir /home/public
    sudo chmod 777 /home/public/
    Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
    gksudo gedit /etc/samba/smb.conf
    Nalezneme tento řádek:
    ...
    ;  security = user
    ...
    Změníme ho na:
    security = user
    username map = /etc/samba/smbusers
    • IconsPage/info.png To znamená, že odstraníme středník před security a pod tento řádek přidáme další s textem username map = /etc/samba/smbusers.

    Nakonec souboru přidáme tyto řádky:
     [public]
      comment = Public Folder
      path = /home/public
      public = yes
      writable = yes
      create mask = 0777
      directory mask = 0777
      force user = nobody
      force group = nogroup
    • IconsPage/info.png Název adresáře můžeme zvolit jaký chceme, ne pouze /home/public. Ale nezapomeňte po změně názvu adresáře změnit proměnou path v konfiguračním souboru.

    Restartujeme Sambu:
    sudo /etc/init.d/samba restart
    A máme hotovo.

Sdílení veřejného adresáře s oprávněním jen pro čtení a bez autentizace

  • Nejprv si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
    Vyvoříme v Terminálu adresář, ke kterému budou mít přístup v síti všichni uživatelé příkazy:
    sudo mkdir /home/public
    sudo chmod 777 /home/public/
    Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
    gksudo gedit /etc/samba/smb.conf
    Nalezneme tento řádek:
    ...
    ;  security = user
    ...
    Změníme ho na:
    security = share
    Nakonec souboru přidáme tyto řádky:
     [public]
      comment = Public Folder
      path = /home/public
      public = yes
      writable = no
      create mask = 0777
      directory mask = 0777
      force user = nobody
      force group = nogroup
    • IconsPage/info.png Název adresáře můžeme zvolit jaký chceme, ne pouze /home/public. Ale nezapomeňte po změně názvu adresáře změnit proměnou path v konfiguračním souboru.

    Restartujeme Sambu:
    sudo /etc/init.d/samba restart
    A máme hotovo.

Sdílení veřejného adresáře s oprávněním pro čtení i zápis a bez autentizace

  • Nejprv si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
    Vyvoříme v Terminálu adresář, ke kterému budou mít přístup v síti všichni uživatelé příkazy:
    sudo mkdir /home/public
    sudo chmod 777 /home/public/
    Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
    gksudo gedit /etc/samba/smb.conf
    Nalezneme tento řádek:
    ...
    ;  security = user
    ...
    Změníme ho na:
    security = share
    Nakonec souboru přidáme tyto řádky:
     [public]
      comment = Public Folder
      path = /home/public
      public = yes
      writable = yes
      create mask = 0777
      directory mask = 0777
      force user = nobody
      force group = nogroup
    • IconsPage/info.png Název adresáře můžeme zvolit jaký chceme, ne pouze /home/public. Ale nezapomeňte po změně názvu adresáře změnit proměnou path v konfiguračním souboru.

    Restartujeme Sambu:
    sudo /etc/init.d/samba restart
    A máme hotovo.

Možné problémy

Zde jsou různé problémy, se kterými je možno se setkat a jak je řešit

Nedaří se spojit

Pokud se nedaří spojit se s počítačem, kde je Samba, zkontrolujte zda jeho jméno není větší než 15 znaků Zkontrolujte název počítače v /etc/hostname

  • IconsPage/info.png Název by neměl být delší než 15 znaků, NETBIOS se s tím neumí řádně srovnat

Stejně tak by v něm neměly být znaky jako tečka, lomítko apod. Pomlčka je v pořádku

Pokud je v názvu problém, editujte ho tímto příkazem

gksudo gedit /etc/hostname

Samba a příkazová řádka

Ovládání Samby z příkazové řádky, včetně zopakování již použitých.

Výpis spojení a stavu SAMBY. Pomocí přepínačů lze výpis upřesnit. *http://www.samba.org/samba/docs/man/manpages-3/smbstatus.1.html

  • smbstatus

Ovládání samby například uzavření spojení. Podrobnosti "man smbcontrol". Opatrně! *http://www.samba.org/samba/docs/man/manpages-3/smbcontrol.1.html

  • smbcontrol

Restart Samby.

  • sudo /etc/init.d/samba restart

Přidání uživatele

  • sudo smbpasswd -a jmeno_uzivatele

Odstranění uživatele.

  • sudo smbpasswd -x jmeno_uživatele

Přehled všech uživatelských účtů.

  • gksudo gedit /etc/samba/smbusers

Odkazy

Aktualizace: Informace v tomto návodě jsou příliš zastaralé a potřebují aktualizaci pro současné poměry. Více...

Grafická úprava: Tento návod potřebuje důležité grafické a stylistické úpravy. Více...

Konvence: Tento návod nesplňuje některé z na Wiki zavedených konvencí. Více...

ubuntu-cz: Samba (last edited 2011-08-02 14:00:34 by 226)