samba

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
samba [2013/08/22 10:20] – přidán odkaz na návod milhousesamba [2019/02/25 18:21] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 +====== Samba ======
  
 +{{.:120px-Samba.png}}
 +
 +//je značně populární programový balík dostupný v rámci [[http://www.abclinuxu.cz/slovnik/gnu|GNU licence]], který implementuje serverovou část protokolu [[http://wiki.root.cz/Main/SMBCIFS|CIFS]] na klientu s Linuxem. Původně byl balík vytvořen Australanem Andrewem Trigellem, který rozpitval protokol [[http://wiki.root.cz/Main/SMBCIFS|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 [[http://www.abclinuxu.cz/slovnik/nfs|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, [[http://www.abclinuxu.cz/slovnik/demon|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 =====
 +
 +{{:apt.png}}Jak již bylo napsáno, je to velmi snadný proces, jen [[Instalace programů|nainstalujeme]] balík [[apt://samba|samba]] a [[apt://smbfs|smbfs]], tzn. například přes [[Terminál]]:
 +
 +
 +<code>
 +sudo apt-get install samba smbfs
 +</code>
 +===== Jednoduchá grafická konfigurace samby =====
 +
 +{{:apt.png}}[[Instalace programů|Nainstalujte]] balík [[apt://system-config-samba|system-config-samba]] a spusťte.
 +
 +
 +<code>
 +sudo apt-get install system-config-samba
 +</code>
 +===== Konfigurace Samba serveru =====
 +
 +==== Nastavení uživatelů ====
 +
 +Nejprve 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ál|Terminálu]]:
 +
 +
 +<code>
 +sudo smbpasswd -a jmeno_uzivatele
 +</code>
 +
 +Pro odstranění uživatele lze zadat do Terminálu:
 +
 +
 +<code>
 +sudo smbpasswd -x jmeno_uživatele
 +</code>
 +
 +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:
 +
 +
 +<code>
 +gksudo gedit /etc/samba/smbusers
 +</code>
 +
 +{{.: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.
 +<code>
 + sudo adduser --quiet --no-create-home --disabled-password  --gecos VLASTNÍ_JMÉNO  --ingroup SKUPINA JMÉNO_UŽIVATELE
 +</code>
 +
 +
 +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.
 +
 +
 +
 +{{.:warning.png}} Pokud jste měli zřízený účet na Windows a ten jste 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 koupi 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.
 +
 +
 +
 +{{.: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 příkaz %%control userpasswords2%%, vyberte váš účet, 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í ====
 +
 +Nejprve si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
 +
 +
 +<code>
 +sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
 +</code>
 +
 +Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
 +
 +
 +<code>
 +gksudo gedit /etc/samba/smb.conf
 +</code>
 +
 +Nalezneme tento řádek:
 +
 +
 +<code>
 +...
 +;  security = user
 +...
 +</code>
 +
 +Změníme ho na:
 +
 +
 +<code>
 +security = user
 +username map = /etc/samba/smbusers
 +</code>
 +
 +{{.: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:
 +
 +
 +<code>
 +sudo /etc/init.d/samba restart
 +</code>
 +{{.:info.png}}
 +Nebo
 +<code>
 +sudo service smbd restart
 +</code>
 +
 +
 +A máme hotovo.
 +
 +
 +==== Sdílení domovského adresáře s oprávněním pro čtení i zápis a s autentizací ====
 +
 +Nejprve si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
 +
 +
 +<code>
 +sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
 +</code>
 +
 +Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
 +
 +
 +<code>
 +gksudo gedit /etc/samba/smb.conf
 +</code>
 +
 +Nalezneme tento řádek:
 +
 +
 +<code>
 +...
 +;  security = user
 +...
 +</code>
 +
 +Změníme ho na:
 +
 +
 +<code>
 +security = user
 +username map = /etc/samba/smbusers
 +</code>
 +
 +{{.: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:
 +
 +
 +<code>
 +...
 +# 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
 +...
 +</code>
 +
 +
 +Změníme ho na:
 +
 +
 +<code>
 +# 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
 +</code>
 +
 +Restartujeme Sambu:
 +
 +
 +<code>
 +sudo /etc/init.d/samba restart
 +</code>
 +
 +A máme hotovo.
 +
 +
 +
 +==== Sdílení adresáře pro skupinu uživatelů s oprávněním jen ke čtení a s autentizací ====
 +
 +Nejprve si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
 +
 +
 +<code>
 +sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
 +</code>
 +
 +Vytvoříme v Terminálu adresář, ke kterému budou mít přístup v síti jen zvolení uživatelé příkazy:
 +
 +
 +<code>
 +sudo mkdir /home/group
 +sudo chmod 777 /home/group/
 +</code>
 +
 +Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
 +
 +
 +<code>
 +gksudo gedit /etc/samba/smb.conf
 +</code>
 +
 +Nalezneme tento řádek:
 +
 +
 +<code>
 +...
 +;  security = user
 +...
 +</code>
 +
 +Změníme ho na:
 +
 +
 +<code>
 +security = user
 +username map = /etc/samba/smbusers
 +</code>
 +
 +{{.: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:
 +
 +
 +<code>
 + [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
 +</code>
 +
 +V proměnné ''valid users'' napište všechny uživatele mající oprávnění k přístupu do adresáře v ''path''.
 +
 +
 +
 +{{.: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:
 +
 +
 +<code>
 +sudo /etc/init.d/samba restart
 +</code>
 +Nebo:
 +
 +
 +<code>
 +sudo service smbd restart
 +</code>
 +
 +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í ====
 +
 +Nejprve si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
 +
 +
 +<code>
 +sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
 +</code>
 +
 +Vytvoříme v Terminálu adresář, ke kterému budou mít přístup v síti jen zvolení uživatelé příkazy:
 +
 +
 +<code>
 +sudo mkdir /home/group
 +sudo chmod 777 /home/group/
 +</code>
 +
 +Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
 +
 +
 +<code>
 +gksudo gedit /etc/samba/smb.conf
 +</code>
 +
 +Nalezneme tento řádek:
 +
 +
 +<code>
 +...
 +;  security = user
 +...
 +</code>
 +
 +Změníme ho na:
 +
 +
 +<code>
 +security = user
 +username map = /etc/samba/smbusers
 +</code>
 +
 +{{.: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:
 +
 +
 +<code>
 + [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
 +</code>
 +
 +V propměnné ''valid users'' napište všechny uživatele mající oprávnění k přístupu do adresáře v ''path''.
 +
 +
 +
 +{{.: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:
 +
 +
 +<code>
 +sudo /etc/init.d/samba restart
 +</code>
 +Nebo:
 +<code>
 +sudo service smbd restart
 +</code>
 +
 +
 +A máme hotovo.
 +
 +
 +==== Sdílení veřejného adresáře s oprávněním jen pro čtení a s autentizací ====
 +
 +Nejprve si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
 +
 +
 +<code>
 +sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
 +</code>
 +
 +Vytvoříme v Terminálu adresář, ke kterému budou mít přístup v síti všichni uživatelé příkazy:
 +
 +
 +<code>
 +sudo mkdir /home/public
 +sudo chmod 777 /home/public/
 +</code>
 +
 +Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
 +
 +
 +<code>
 +gksudo gedit /etc/samba/smb.conf
 +</code>
 +
 +Nalezneme tento řádek:
 +
 +
 +<code>
 +...
 +;  security = user
 +...
 +</code>
 +
 +Změníme ho na:
 +
 +
 +<code>
 +security = user
 +username map = /etc/samba/smbusers
 +</code>
 +
 +{{.: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:
 +
 +
 +<code>
 + [public]
 +  comment = Public Folder
 +  path = /home/public
 +  public = yes
 +  writable = no
 +  create mask = 0777
 +  directory mask = 0777
 +  force user = nobody
 +  force group = nogroup
 +</code>
 +
 +{{.: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:
 +
 +
 +<code>
 +sudo /etc/init.d/samba restart
 +</code>
 +
 +A máme hotovo.
 +
 +
 +==== Sdílení veřejného adresáře s oprávněním pro čtení i zápis a s autentizací ====
 +
 +
 +Nejprve si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
 +
 +
 +<code>
 +sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
 +</code>
 +
 +Vytvoříme v Terminálu adresář, ke kterému budou mít přístup v síti všichni uživatelé příkazy:
 +
 +
 +<code>
 +sudo mkdir /home/public
 +sudo chmod 777 /home/public/
 +</code>
 +
 +Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
 +
 +
 +<code>
 +gksudo gedit /etc/samba/smb.conf
 +</code>
 +
 +Nalezneme tento řádek:
 +
 +
 +<code>
 +...
 +;  security = user
 +...
 +</code>
 +
 +Změníme ho na:
 +
 +
 +<code>
 +security = user
 +username map = /etc/samba/smbusers
 +</code>
 +
 +{{.: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:
 +
 +
 +<code>
 + [public]
 +  comment = Public Folder
 +  path = /home/public
 +  public = yes
 +  writable = yes
 +  create mask = 0777
 +  directory mask = 0777
 +  force user = nobody
 +  force group = nogroup
 +</code>
 +
 +{{.: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:
 +
 +
 +<code>
 +sudo /etc/init.d/samba restart
 +</code>
 +
 +A máme hotovo.
 +
 +
 +==== Sdílení veřejného adresáře s oprávněním jen pro čtení a bez autentizace ====
 +
 +Nejprve si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
 +
 +
 +<code>
 +sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
 +</code>
 +
 +Vyvoříme v Terminálu adresář, ke kterému budou mít přístup v síti všichni uživatelé příkazy:
 +
 +
 +<code>
 +sudo mkdir /home/public
 +sudo chmod 777 /home/public/
 +</code>
 +
 +Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
 +
 +
 +<code>
 +gksudo gedit /etc/samba/smb.conf
 +</code>
 +
 +Nalezneme tento řádek:
 +
 +
 +<code>
 +...
 +;  security = user
 +...
 +</code>
 +
 +Změníme ho na:
 +
 +
 +<code>
 +security = share
 +</code>
 +
 +Nakonec souboru přidáme tyto řádky:
 +
 +
 +<code>
 + [public]
 +  comment = Public Folder
 +  path = /home/public
 +  public = yes
 +  writable = no
 +  create mask = 0777
 +  directory mask = 0777
 +  force user = nobody
 +  force group = nogroup
 +</code>
 +
 +{{.: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:
 +
 +
 +<code>
 +sudo /etc/init.d/samba restart
 +</code>
 +
 +A máme hotovo.
 +
 +
 +==== Sdílení veřejného adresáře s oprávněním pro čtení i zápis a bez autentizace ====
 +
 +Nejprve si provedeme zálohu konfiguračního souboru nastavení Samba serveru, zadáním příkazu v Terminálu:
 +
 +
 +<code>
 +sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
 +</code>
 +
 +Vyvoříme v Terminálu adresář, ke kterému budou mít přístup v síti všichni uživatelé příkazy:
 +
 +
 +<code>
 +sudo mkdir /home/public
 +sudo chmod 777 /home/public/
 +</code>
 +
 +Otevřeme si s právy administrátora v textovém editoru konfigurační soubor:
 +
 +
 +<code>
 +gksudo gedit /etc/samba/smb.conf
 +</code>
 +
 +Nalezneme tento řádek:
 +
 +
 +<code>
 +...
 +;  security = user
 +...
 +</code>
 +
 +Změníme ho na:
 +
 +
 +<code>
 +security = share
 +</code>
 +
 +
 +Nakonec souboru přidáme tyto řádky:
 +
 +
 +<code>
 + [public]
 +  comment = Public Folder
 +  path = /home/public
 +  public = yes
 +  writable = yes
 +  create mask = 0777
 +  directory mask = 0777
 +  force user = nobody
 +  force group = nogroup
 +</code>
 +
 +{{.: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:
 +
 +
 +<code>
 +sudo /etc/init.d/samba restart
 +</code>
 +
 +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 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''
 +
 +
 +{{.: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 vpořádku.
 +
 +Pokud je v názvu problém, editujte ho tímto příkazem
 +<code>
 +gksudo gedit /etc/hostname
 +</code>
 +
 +===== 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
 +<code>
 +smbstatus
 +</code>
 +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
 +<code>
 +smbcontrol
 +</code>
 +Restart Samby.
 +<code>
 +sudo /etc/init.d/samba restart
 +</code>
 +Přidání uživatele
 +<code>
 +sudo smbpasswd -a jmeno_uzivatele
 +</code>
 +Odstranění uživatele.
 +<code>
 +sudo smbpasswd -x jmeno_uživatele
 +</code>
 +Přehled všech uživatelských účtů.
 +<code>
 +gksudo gedit /etc/samba/smbusers
 +</code>
 +
 +===== Odkazy =====
 +  * [[http://www.fi.muni.cz/~xbatko/samba/|Samba: Fileserver na bázi protokolu SMB pro UNIX]] – detailnější popis od Spidera
 +  * http://www.howtoforge.com/ubuntu-gutsy-samba-standalone-server-with-tdbsam-backend
 +  * http://www.howtoforge.com/ubuntu-gutsy-samba-domaincontroller
 +  * [[http://www.linuxexpres.cz/jak-na-to/jak-v-ubuntu-sdilet-adresare|Klikací návod na LinuxExpres.cz]]
 +
 +{{page>úpravy/aktualizace}}
 +
 +{{page>úpravy/konvence}}
 +
 +{{page>úpravy/grafika}}
  • Poslední úprava: 2019/02/25 18:21
  • autor: 127.0.0.1