====== 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]]:
sudo apt-get install samba smbfs
===== Jednoduchá grafická konfigurace samby =====
{{:apt.png}}[[Instalace programů|Nainstalujte]] balík [[apt://system-config-samba|system-config-samba]] a spusťte.
sudo apt-get install system-config-samba
===== 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]]:
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
{{.: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.
{{.: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:
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
{{.: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
{{.: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í ====
Nejprve 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
{{.: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 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:
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
{{.: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''.
{{.: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í ====
Nejprve 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
{{.: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''.
{{.: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í ====
Nejprve 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
{{.: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
{{.: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í ====
Nejprve 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
{{.: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
{{.: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 ====
Nejprve 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
{{.: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 ====
Nejprve 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
{{.: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 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
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 =====
* [[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}}