Hlavní konfigurační soubor Samby je /etc/samba/smb.conf. Počáteční konfigurační soubor obsahuje značný počet komentářů pro dokumentaci různých konfiguračních direktiv.
Soubor výchozího nastavení neobsahuje všechny možné možnosti. Viz manuál muž smb.conf nebo Samba FAQ pro více podrobností.
1. Nejprve změňte následující páry klíč/hodnota v sekci soubor /etc/samba/smb.conf:
Pracovní skupina = PŘÍKLAD ... zabezpečení = uživatel
Parametr bezpečnostní se nachází mnohem níže v sekci a je ve výchozím nastavení zakomentován. Také vyměnit PŘÍKLAD na něco vhodnějšího pro vaše okolí.
2. Vytvořte novou sekci na konci souboru nebo odkomentujte jeden z příkladů pro adresář, který chcete sdílet:
Komentář = Ubuntu File Server Share path = /srv/samba/share browsable = yes guest ok = yes read only = no create mask = 0755
komentář: Krátký popis sdíleného zdroje. Používá se pro vaše pohodlí.
cesta: cesta ke sdílenému adresáři.
Tento příklad používá /srv/samba/sharename, protože podle standardu File System Hierarchy Standard (FHS) je adresář /srv místem, kde by měla být umístěna všechna data související s daným webem. Technicky lze sdílení Samba umístit kdekoli v systému souborů, kde to umožňují omezení přístupu k souborům, ale doporučuje se dodržovat standardy.
prohlížet: Umožňuje klientům Windows zobrazit obsah sdíleného adresáře pomocí Průzkumníka Windows.
host ok: Umožňuje klientům připojit se ke sdílenému prostředku bez zadání hesla.
pouze ke čtení: Určuje, zda je zdroj přístupný s oprávněními pouze pro čtení nebo pro zápis. Oprávnění k zápisu jsou k dispozici pouze tehdy, když zadáte Ne, jak je ukázáno v tomto příkladu. Pokud je hodnota Ano, pak bude přístup ke zdroji pouze pro čtení.
vytvořit masku: určuje které přístupová práva bude nastaveno pro nově vytvořené soubory.
3. Nyní, když je Samba nakonfigurována, musíte vytvořit adresář a nastavit pro něj oprávnění. Zadejte do terminálu:
Sudo mkdir -p /srv/samba/share sudo chown Nobody.nogroup /srv/samba/share/
parametr -p říká mkdir, aby vytvořil úplný strom adresářů, pokud neexistuje.
4. Nakonec restartujte služby samba, abyste použili nová nastavení:
Sudo restart smbd sudo restart nmbd
Nyní můžete prohledávat souborový server Ubuntu pomocí klienta Windows a procházet jeho sdílené adresáře. Pokud váš klient nezobrazuje vaše sdílené položky automaticky, zkuste k serveru přistupovat pomocí jeho IP adresy, například \\192.168.1.1, z okna Průzkumníka Windows. Chcete-li zkontrolovat, zda vše funguje, zkuste vytvořit adresář ve sdílené složce ze systému Windows.
Chcete-li vytvořit další sdílené položky, vytvořte novou sekci v /etc/samba/smb.conf a restartujte Sambu. Jen se ujistěte, že je sdílený adresář vytvořen a má správná oprávnění.
Sdílený zdroj "" a způsob /srv/samba/share- to jsou jen příklady. Nastavte název prostředku a název adresáře podle vašeho prostředí. Jako název prostředku je vhodné použít název adresáře prostředku v systému souborů. Jinými slovy, prostředek lze zadat pro adresář /srv/samba/qa.
Tento článek se zaměří na vytvoření bezdrátové sítě lokální síť pro zařízení s různými operačními systémy Systémy Windows, Linux, Android pomocí Samby.
V dnešní době má téměř každý byt Wi-Fi síť, a existuje také velké množství různých zařízení (notebooky, smartphony, tablety, Android TV Box). V tomto ohledu bude dříve nebo později potřeba spojit všechna dostupná zařízení do jedné domácí sítě, aby bylo možné snadno přistupovat ke všem druhům souborů z jakéhokoli gadgetu.
To je vlastně to, o čem bude řeč v tomto opusu. Pojďme tedy začít.
Pro výstavbu sítě použijeme hotové řešení s názvem Samba. Toto je balíček bezplatné programy s otevřeným zdrojový kód umožňující připojení k síťové disky, tiskárny a další zařízení na různých operačních systémech pomocí vlastního protokolu SMB/CIFS.
Software se skládá ze dvou částí – serverové a klientské. Nainstalujeme Samba server na jedno ze zařízení, které bude podle definice hlavní, a Samba klienta na všechna ostatní.
Instalace serveru Samba
V mém případě jsem pro serverové zařízení vybral notebook, na kterém byly paralelně nainstalovány Windows 7 a Ubuntu Mate 16.04. Níže se budeme podrobně zabývat procesem instalace a konfigurace Samby pro oba operační systémy.
Nastavení serveru samba pod Linuxem
Ve výchozím nastavení není Samba v Ubuntu nainstalována, takže to musíte udělat, než budete pokračovat. Abychom následně neupravovali konfigurační soubor Samba prostřednictvím terminálu, volitelně nainstalujeme program Gadmin-Samba, který kromě balíčků serveru Samba obsahuje GUI.
Chcete-li nainstalovat, zadejte terminál:
Sudo apt install gadmin-samba
Po dokončení instalace spusťte Gadmin Samba. Rozhraní aplikace není rusifikované, ale pochopení nastavení je poměrně jednoduché.
V programu je spousta nastavení, ale celkově nás v našem případě zajímá karta „uživatelé“. Přejděte na něj a přidejte nového uživatele.
Klikněte na tlačítko „Nový uživatel“, zadejte uživatelské jméno do aktualizovaného okna, vymyslete heslo, přidejte jej do skupiny (abyste „nevynalezli kolo“, označte stávající, jmenovitě „sambausers“) a nastavit domovský adresář pro soubory. Poté klikněte na „Použít“.
HD videobox - Nový uživatel
Chcete-li použít změny, restartujte server pomocí tlačítek „deaktivovat“ a „aktivovat“ umístěných v levém horním rohu okna aplikace.
Nezapomeňte také nastavit přístupová práva ke „sdíleným“ složkám pro sdílený přístup. To lze provést buď prostřednictvím terminálu nebo prostřednictvím grafického rozhraní průzkumníka souborů Nautilus.
Nautilus - změna oprávnění
Nautilus - Povolení k zápisu do souboru
Nastavení serveru samba v systému Windows
V případě Windows je vše mnohem prozaičtější, jelikož v tomto operačním systému je standardně používána Samba.
V zásadě můžete použít stávající účet nebo povolit přístup pro hosty. Případně si můžete vytvořit další účet, jehož data budou použita pro přístup k síti
Chcete-li vytvořit nový účet, musíte přejít na "ovládací panel", vybrat "spravovat uživatelské účty" a vytvořit nový účet s heslem.
Přidání nového účtu
Při vytváření nového uživatele budete muset vybrat typ účtu, vytvořit jméno a heslo.
V poslední fázi budete muset nastavit práva pro zobrazení změn ve „sdílených“ složkách. To lze provést ve standardním Průzkumníku Windows prostřednictvím položky kontextová nabídka"vlastnosti", ve vztahu ke složce, kterou potřebujete.
"Sdílení" složky
Přidání uživatele a změna oprávnění složky
Po vytvoření nového uživatele se nezapomeňte znovu přihlásit k aktuální relaci, aby se změny projevily.
Instalace klienta Samba na Android
Pro přístup k serveru Samba a následně k síťovým jednotkám na běžících zařízeních Ovládání Android Doporučuji použít aplikaci Root Explorer (odkaz ke stažení plná verzežádná reklama na konci článku).
Samba je program, který umožňuje přístup k síťovým jednotkám na různých operační systémy přes protokol SMB/CIFS. Má klientskou a serverovou část. Je zdarma software, vydané pod licencí GPL.
Samba běží na většině systémů podobných Unixu, jako je GNU/Linux, Solaris kompatibilní s POSIX a Mac OS X Server, různé varianty BSD, OS/2, Windows. Samba je součástí téměř všech distribucí GNU/Linuxu, samozřejmě včetně Ubuntu.
Instalace
Dělat sdílená složka V Ubuntu Desktop stačí kliknout pravým tlačítkem myši na složku a vybrat položku nabídky „Publikovat složku“. Není potřeba upravovat žádné konfigurační soubory. Vše popsané níže platí pouze pro manuální nastavení, například v případě vytvoření souborového serveru.
Chcete-li nainstalovat, stačí otevřít terminál a zadat:
sudo apt-get nainstalujte sambu
Aplikace se automaticky stáhne a nainstaluje.
Nastavení
Pomocí terminálu vytvoříme záložní kopii počátečního konfiguračního souboru:
Sudo cp /etc/samba/smb.conf(,.bak)
Nyní můžete upravit soubor nastavení /etc/samba/smb.conf; k tomu jej otevřete v libovolném textovém editoru s právy superuživatele. Například takto:
Sudo nano /etc/samba/smb.conf Příklad konfigurace Samby jako samostatného souborového serveru s autorizací: ; Globální nastavení servery; Obecná nastavení serveru; Název počítače, který se zobrazí v síťovém prostředí netbios name = main-server server string = ; Pracovní skupina klienti workgroup = WORKGROUP oznámit verzi = 5.0 soket možnosti = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 passdb backend = zabezpečení tdbsam = uživatelská nulová hesla = true ; Soubor pro aliasy uživatelských jmen username map = /etc/samba/smbusers jméno resolve order = hosts wins bcast ; podpora wins je nastavena na ano, pokud váš nmbd(8) v Sambě je server WINS. Nenastavujte tento parametr na yes, pokud nemáte více podsítí a nechcete, aby vaše nmbd fungovala jako server WINS. Nikdy nenastavujte tento parametr na ano na více než jednom počítači ve stejné podsíti. vyhrává podpora = ne ; Tiskárna podporuje tisk = CUPS printcap name = CUPS ; Soubor protokolu protokolů = /var/log/samba/log.%m syslog = 0 pouze syslog = ne; Konfigurace vazby, kterým rozhraním se má naslouchat, pokud nejsou zadána naslouchání na všech rozhraních; rozhraní = lo, eth0 ; svázat pouze rozhraní = true ; ; ; cesta = /var/lib/samba/printers ; procházet = ano ; host ok = ano ; pouze pro čtení = ano ; zapisovat seznam = root ; vytvořit masku = 0664 ; maska adresáře = 0775 ; ; ; cesta = /tmp ; tisknutelné = ano ; host ok = ano ; procházet = ne; ; ;cesta = /media/cdrom ;prohlížení = ano ;pouze pro čtení = ano ;host ok = ano ; Míč pevného disku; Název koulí je viditelný u klientů; Cesta ke sdílenému disku cesta = /media/sda1 ; Je možné procházet browseable = yes read only = no guest ok = no create mask = 0644 directory mask = 0755 ; Vazba na konkrétní uživatelské jméno nebo skupinu, jména oddělená mezerou; vynutit uživatele = uživatel1 uživatel2 ; skupina síly = skupina1 skupina2 ; Další HDD, podobně jako výše cesta = /media/sde1 browseable = yes read only = no guest ok = no create mask = 0644 directory mask = 0755
Nyní musíme jednat s uživateli.
Samba používá uživatele, kteří již jsou v systému, vezměme si jako příklad jméno uživatel, řekněme, že už je v systému, potřebujeme jej přidat do databáze SMB a přiřadit heslo pro přístup ke sdíleným zdrojům, udělej to příkazem:
Smbpasswd -a uživatel
Budete vyzváni k zadání hesla, uživatel bude přidán do databáze, nyní je potřeba tohoto uživatele povolit.
Uživatel Smbpasswd -e
Dále si vytvořme alias pro uživatele s uživatelským jménem, který nám usnadní přístup z počítače s Windows, na kterém máme např. uživatele jménem Admin. K tomu vytvoříme a upravíme soubor /etc/ samba/smbusers:
Sudo touch /etc/samba/smbusers sudo gedit /etc/samba/smbusers
Do souboru napište pár řádků
# Unix_name = SMB_name1 SMB_name2 user = Správce
Tím je nastavení dokončeno, restartujte Sambu.
Souborový server Samba pro síť Windows
Samba se velmi často používá k vytvoření souborového serveru v síti Windows.
Souborový server jako součást domény Active Directory
Chcete-li vytvořit souborový server integrovaný do domény Active Directory, musíte nejprve připojit svůj počítač Ubuntu k doméně. Tomu je věnován samostatný článek:
Chcete-li vytvořit souborový server, nemusíte konfigurovat PAM, stačí přidat uživatele a skupiny domény přes Winbind do systému.
Po úspěšném přihlášení do domény stačí nakonfigurovat sdílené prostředky na vašem počítači.
Zde byste měli okamžitě věnovat pozornost jedné velmi důležité věci: Samba se snaží mapovat práva k souborům Windows na práva Unix, ale kvůli zásadním rozdílům v mechanismech přidělování práv to není vždy možné. Vezměte prosím na vědomí, že práva k souborům jsou vždy a v každém případě řízena vaším souborovým systémem na počítači se systémem Ubuntu; Samba se jim může pouze přizpůsobit, ale nemění jejich chování.
Proto budou mít sdílené prostředky ve výchozím nastavení velmi omezené možnosti řízení přístupu – přidělování různých práv uživateli, skupině a všem ostatním. To však lze snadno opravit přidáním podpory POSIX ACL do vašeho FS. V tomto případě bude možné přidělit různá práva různým uživatelům a skupinám, podobně jako ve Windows.
Podpora POSIX ACL je dostupná minimálně v ext3/4, pro její aktivaci stačí přidat parametr acl do možností připojení požadovaného oddílu.
Je důležité, aby adresář, který chcete sdílet prostřednictvím Samby, byl na disku připojeném s možností acl. V opačném případě nebudete moci správně používat mechanismus pro vymezení přístupových práv k souborům na sdílených položkách.
Je tu ještě jeden velmi důležitý bod: POSIX ACL nepodporují dědění přístupových práv z nadřazených adresářů, ale ve Windows je tato funkce přítomna. Samba proto implementuje další mechanismus pro ukládání informací o dědičnosti přístupových práv, který využívá rozšířené atributy souborového systému. Proto, aby Samba správně zvládla dědění jiných práv než acl, je nutné přidat do možností připojení souborového systému parametr user_xattr, který je zodpovědný za povolení podpory rozšířených atributů.
Například vždy používám samostatné disky LVM k uspořádání sdílených prostředků a moje řádky fstab pro ně vypadají asi takto:
/dev/mapper/data-profiles /var/data/profiles ext3 defaults,noexec,acl,user_xattr 0 2
Volba noexec je nutná, protože na koulích Windows by nemělo být 100% spustitelné soubory Linux a nebude na škodu být na bezpečné straně.
Chcete-li pracovat s acl na Ubuntu, musíte nainstalovat balíček příslušných nástrojů:
Sudo aptitude install acl
Poté můžete pomocí příkazu zobrazit rozšířená práva (tj. ACL) pro soubor nebo adresář
soubor Getfacl
A nainstalujte pomocí příkazu
soubor Setfacl
Pro každý případ bych vás rád upozornil na skutečnost, že mechanismus POSIX ACL nemá se Sambou nic společného - je to prostě doplněk standardního mechanismu pro dělení práv v Linuxu. V souladu s tím ji Samba může používat, ale nemůže ji žádným způsobem změnit ani obejít.
Pro práci s rozšířenými atributy FS budete potřebovat obslužný balíček velmi podobný acl - attr , který lze nainstalovat pomocí příkazu
Sudo aptitude install attr
Chcete-li zobrazit rozšířené atributy, můžete použít příkaz
Soubor Getfattr
A k instalaci
soubor Setfattr
Má to však jeden malý háček. Faktem je, že Samba ukládá všechny informace o dědičnosti v binární podobě do jediného rozšířeného atributu user.SAMBA_PAI. Proto nebudete moci nic změnit pomocí setfattr, pokud zcela neodstraníte rozšířené atributy (někdy to může být nutné udělat).
No, budete muset spravovat dědění práv ze stroje Windows pomocí standardních nástrojů tohoto systému. Nebo pomocí nástroje smbcacls, pokud zjistíte, jak jej používat.
Existuje také experimentální modul VFS acl_xattr, který umožňuje ukládat NT ACL zcela v rozšířených atributech. Bohužel k tomu není žádná dokumentace, takže je těžké o tom říct něco srozumitelného. Očekává se, že Samba 4 bude mít plnou integrovanou podporu pro NT ACL, ale zatím můžete používat to, co je k dispozici.
Pokud máte co dodat k rozšířeným atributům v Sambě a metodám práce s nimi, určitě napište do tohoto tématu na fóru. Budu rád za jakékoliv odkazy, články a komentáře k tématu.
Navíc rozšířené atributy systému souborů umožňují Sambě povolit plnou podporu atributů souborů DOS, jako jsou skryté, archivní atd.
Předpokládejme tedy, že máte v systému adresář, který chcete sdílet prostřednictvím Samby (a je umístěn na disku připojeném s podporou acl a user_xattr). Nyní musíte skutečně nakonfigurovat jeho sdílení. Chcete-li to provést, musíte zadat příslušné informace do souboru /etc/samba/smb.conf.
Začněme obecnými nastaveními, která lze přidat do sekce tohoto souboru (nejsou to všechny možné parametry, jen několik docela užitečných):
# Zakázat sdílení tiskárny. Pokud je ovšem opravdu nechcete sdílet. # Pro úplné vypnutí musíte zadat všechny 4 řádky níže načíst tiskárny = nezobrazit průvodce přidáním tiskárny = no printcap name = /dev/null zakázat spoolss = yes # Skrýt při zobrazení pomocí soubory Windows s následujícími názvy skrýt soubory = /$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/ # Použít dalšího uživatele UNIX jako hosta pro veřejné sdílení sdílet účet hosta = nikdo # Neregistrované uživatele považovat za mapu hosta pro guest = Bad User ## Nastavení, která používají rozšířené atributy systému souborů # Zvládnout dědění práv pomocí atributů rozšířeného systému souborů map acl inherit = yes # Použít rozšířené atributy systému souborů k uložení atributů DOS store atributů DOS = yes # Zakázat mapování atributů DOS v systému UNIX práva povolena default # Podle man smb.conf musí být při použití rozšířených atributů tyto možnosti zakázány map archive = no map system = no map hidden = no readonly = no
Nyní nastavení pro přímo sdílený prostředek. já tomu říkám profily a fyzicky na počítači Ubuntu, na kterém se nachází /var/data/profiles:
# Komentář komentář = Profily uživatelů # Cesta ke složce, kterou sdílíme cesta = /var/data/profiles/ # Uživatelé s neomezenými přístupovými právy ke sdílené složce # Mám skupinu správců domény. # Při práci se soubory se s těmito uživateli zachází jako s místními uživateli root admin = "@DOMAIN\Domain Administrators" # Skrýt složky, ke kterým uživatel nemá přístup skrýt nečitelné = ano # Přístup bez přístupu pouze pro čtení = ne # Masky pro vytvořené soubory - lze nastavit libovolně #vytvořit masku = 0600 #maska adresáře = 0700 # Vypnutí zamykání - je lepší zamykání vypnout = ne
Existuje mnoho dalších možností – podrobnosti se vyplatí nahlédnout do dokumentace k Sambě.
Nezapomeňte nastavit správného vlastníka a přístupová práva ke složce, kterou sdílíte, jinak může být i přes jakékoli nastavení samby zápis do ní zakázán na úrovni oprávnění Linux. Obvykle to dělám takto:
Sudo chmod ug+rwx /var/data/profiles sudo chown root:"uživatelé domény" /var/data/profiles
Vezměte prosím na vědomí, že protože váš počítač Ubuntu je připojen k doméně, můžete používat uživatele a skupiny domény jako vlastníky souborů přímo v Ubuntu.
Pomocí příkazu zkontrolujte, zda je konfigurace Samby správná
Testparm
Poté restartujte Sambu:
Sudo /etc/init.d/samba restartujte
Nyní můžete ke sdílenému prostředku přistupovat z libovolného počítače v doméně.
Mimochodem, nezapomeňte na SGID a Sticky bity pro adresáře. Umožní vám zdědit vlastnící skupinu a zabránit uživatelům v mazání souborů, které jim nepatří – to může být velmi výhodné pro víceuživatelská úložiště. Na rozdíl od editačních práv z Windows však změna těchto bitů u složek na sdíleném prostředku nebude fungovat – pouze ručně přímo na počítači Ubuntu.
Samba mimo jiné umožňuje organizovat úložiště předchozích verzí souborů, což se někdy hodí při vytváření sdílených zdrojů s uživatelskými daty.
Samostatný souborový server
Ne každý má doménu Active Directory. Proto je často potřeba organizovat Linuxový stroj offline úložiště souborů s vlastním autorizačním systémem. Je to velmi snadné.
Hlavním rysem této organizace ukládání souborů bude, že všechny informace o uživatelích budou uloženy v databázi Samba, takže uživatelé budou muset být do Samby přidáváni a mazáni ručně.
Nejdůležitější je rozhodnout o způsobu přístupu ke zdroji. Chcete-li jej změnit, musíte správně nastavit hodnotu parametru zabezpečení v sekci souboru /etc/samba/smb.conf. Více o tomto parametru nebo v oficiální dokumentaci.
Obvykle se používá hodnota share nebo user.
Samostatný souborový server bez oprávnění
Je to vhodné pro dům, takže každý na každého vidí. To lze provést přidáním 4 řádků do části souboru /etc/samba/smb.conf. Některé již mohou existovat.
[global] workgroup = WORKGROUP map to guest = Bad User netbios name = NOTEBOOK security = userNOTEBOOK – název počítače, který bude v síti. Navíc je potřeba nainstalovat doplňkové programy:
sudo apt-get nainstalujte sambuPro kubuntu je také potřeba nainstalovat smb4k. Po úpravě konfigurací je třeba restartovat služby. V systemd (od 15.04) restart vypadá takto:
sudo systemctl restart smbd.service nmbd.service„Míčky“ si můžete prohlédnout přes prohlížeč souborů nautilus, konkueror nebo takto:
Smbclient -L 127.0.0.1
. Oficiální dokumentace v angličtině.
Sdílení složky na ubuntu
Vytvořte složku pro sdílení souborů.
mkdir ~/sharePřidejte následující řádky na konec souboru /etc/samba/smb.conf a nahraďte yuraku1504 uživatelským jménem počítače se sambou:
[ MyShareWork] komentář = Anonymní cesta sdílení Samby = / home/ yuraku1504/ sdílet host ok = ano prohlížet = ano zapisovat = ano pouze pro čtení = ne vynutit uživatele = yuraku1504 vynutit skupinu = yuraku1504Složka se otevře pro čtení a zápis.