Hlavní konfigurační soubor pro Sambu je /etc/samba/smb.conf. Počáteční konfigurační soubor obsahuje značné množství komentářů k dokumentaci různých konfiguračních direktiv.
V souboru výchozího nastavení nejsou povoleny všechny možné možnosti. Viz průvodce muž smb.conf nebo Samba FAQ Collection pro více podrobností.
1. Nejprve změňte následující páry klíč/hodnota v sekci /etc/samba/smb.conf soubor:
Workgroup=EXAMPLE ... security=user
Parametr bezpečnostní je v úseku výrazně nižší a je ve výchozím nastavení zakomentován. Také vyměnit PŘÍKLAD na něco vhodnějšího pro vaše prostředí.
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 tímto 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 pouze pro čtení nebo pouze pro zápis. Oprávnění k zápisu jsou dostupná pouze tehdy, jsou-li zadána 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, jaká oprávnění budou nastavena 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 najít souborový server Ubuntu pomocí klienta Windows a zobrazit 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ř. \\192.168.1.1, z okna Průzkumníka Windows. Chcete-li otestovat, že 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 jsou jen příklady. Nastavte název prostředku a název adresáře tak, aby odpovídal vašemu 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 jako pro adresář /srv/samba/qa.
Tento článek se zaměří na vytvoření bezdrátové sítě LAN pro zařízení s různými operačními systémy. Systémy Windows, Linux, Android pomocí Samby.
V dnešní době je téměř každý byt vybaven Wi-Fi sítí a k dispozici je také velké množství různých zařízení (notebooky, smartphony, tablety, Android TV Boxy). V tomto ohledu je dříve nebo později potřeba spojit všechna dostupná zařízení do jedné domácí sítě, aby bylo možné volně přistupovat ke všem druhům souborů z jakéhokoli gadgetu.
Ve skutečnosti o tom bude řeč v tomto opusu. Pojďme tedy začít.
Pro budování sítě využijeme hotové řešení s názvem Samba. Toto je balíček bezplatné programy open source software, který umožňuje připojení k síťovým jednotkám, tiskárnám a dalším zařízením 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é. Na jedno ze zařízení, které bude podle definice hlavní, nainstalujeme server Samba, na všechny ostatní klienty Samba.
Instalace backendu Samba
V mém případě jsem pro serverové zařízení zvolil notebook, na kterém jsou paralelně nainstalovány Windows 7 a Ubuntu Mate 16.04. Pojďme se blíže podívat na proces instalace a konfigurace Samby pro oba operační systémy.
Nastavení serveru samba pod Linuxem
Ve výchozím nastavení Ubuntu nemá nainstalovanou Sambu, takže je třeba to udělat, než budete pokračovat. Abyste následně neupravovali konfigurační soubor Samba prostřednictvím terminálu, nainstalujte si volitelně program Gadmin-Samba, který kromě serverových balíčků Samba obsahuje grafické rozhraní.
Chcete-li nainstalovat, zadejte do terminálu:
Sudo apt install gadmin-samba
Po dokončení instalace spusťte Gadmin Samba. Rozhraní aplikace není rusifikované, ale je docela snadné pochopit nastavení.
V programu je mnoho 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.
Stiskneme tlačítko „Nový uživatel“, v aktualizovaném okně zadáme uživatelské jméno, vymyslíme heslo, přidáme jej do skupiny (abychom „nevynalezli kolo“, určete stávajícího, konkrétně „sambausers“) a nastavte 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 uživatelského rozhraní průzkumníka souborů nautilus.
Nautilus - změna oprávnění
Nautilus - oprávnění k zápisu souborů
Nastavení serveru samba pod Windows
V případě Windows je vše mnohem prozaičtější, jelikož se v tomto operačním systému standardně používá 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 jiný účet, jehož údaje budou použity pro přístup k síti
Chcete-li vytvořit nový účet, musíte přejít do "ovládacího panelu", vybrat "správa uživatelských účtů" 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, vymyslet jméno a heslo.
V poslední fázi budete muset nastavit práva pro zobrazení změn ve „sdílených“ složkách. Můžete to 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 postupu pro vytvoření nového uživatele je nutné provést přechod pro 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 zařízeních pod Ovládání Android Doporučuji použít aplikaci Root Explorer (odkaz ke stažení plná verzežádné reklamy na konci článku).
Samba je program, který umožňuje přístup k síťovým diskům na různých operačních systémech pomocí protokolu SMB/CIFS. Má klientskou a serverovou část. Je to svobodný 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, na různých variantách BSD, na 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 na ploše Ubuntu 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 ruční nastavení, například v případě vytvoření souborového serveru.
Pro instalaci stačí otevřít terminál a napsat:
sudo apt-get nainstalujte sambu
Aplikace se automaticky stáhne a nainstaluje.
Nastavení
Pomocí terminálu vytvořte 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í server; 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 volby soketu = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 passdb backend = zabezpečení tdbsam = uživatelská nulová hesla = true ; Uživatelské jméno alias soubor uživatelské jméno map = /etc/samba/smbusers jméno resolve order = hosts wins bcast ; Podpora wins je nastavena na ano, pokud je vaše Samba nmbd(8) serverem WINS. Nenastavujte tuto možnost na ano, pokud nemáte více podsítí a nechcete, aby vaše nmbd fungovala jako server WINS. Nikdy nenastavujte tuto možnost 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; Nastavení vazby na rozhraní, na kterých se má naslouchat, pokud není zadáno, naslouchá 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í, viditelný pro zákazníky ; 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á mezerami; 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ří jsou již v systému, vezměme si například jméno uživatele, řekněme, že je již v systému, musíte jej přidat do databáze SMB a přiřadit heslo pro přístup ke sdíleným složkám, udělejme to pomocí příkaz:
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 vytvoříme alias pro uživatele uživatelského jména pro usnadnění přístupu z počítače s Windows, na kterém máme například uživatele jménem Admin, za tímto účelem vytvoříme a upravíme soubor /etc/samba/smbusers:
sudo touch /etc/samba/smbusers sudo gedit /etc/samba/smbusers
Napište do souboru několik řá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 často používá k vytvoření souborového serveru v síti Windows.
Souborový server v doméně Active Directory
Chcete-li vytvořit souborový server integrovaný do domény Active Directory, musíte nejprve přenést svůj počítač Ubuntu do domény. Toto je předmětem samostatného článku:
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é. Mějte na paměti, že oprávnění k souborům jsou vždy a v každém případě řízena vaším souborovým systémem na počítači 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 špatné možnosti řízení přístupu – přidělování různých práv pro uživatele, skupinu a všechny ostatní. To však lze snadno opravit přidáním podpory POSIX ACL do vašeho systému souborů. V tomto případě bude možné přidělovat různá práva různým uživatelům a skupinám, téměř jako ve Windows.
Podpora POSIX ACL je přítomna alespoň v ext3/4, k 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 jednotce připojené 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 koulích.
Je zde ještě jeden velmi důležitý bod: POSIX ACL nepodporují dědění přístupových práv z nadřazených adresářů a tato funkce je přítomna ve Windows. 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í práv, je kromě acl nutné přidat do možností připojení souborového systému parametr user_xattr, který má na starosti 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
Možnost noexec je nutná, protože sdílené složky systému Windows by neměly mít 100 % spustitelné soubory Linux a není na škodu si znovu zahrát na jistotu.
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 vidět rozšířená práva (tj. ACL) na soubor nebo adresář s příkazem
soubor Getfacl
A nainstalujte pomocí příkazu
soubor Setfacl
Pro každý případ chci upozornit na skutečnost, že mechanismus POSIX ACL nemá se Sambou nic společného - je to pouze doplněk ke standardnímu mechanismu diferenciace prá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
Je zde však jeden malý zádrhel. Jde o to, ž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 . Takže pomocí setfattr nebudete moci nic změnit, pokud úplně neodstraníte rozšířené atributy (někdy to možná budete muset 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 můžete zjistit, jak jej používat.
Existuje také experimentální modul VFS acl_xattr, který vám umožňuje ukládat NT ACL zcela v rozšířených atributech. Bohužel k němu není žádná dokumentace, takže je těžké o něm něco srozumitelného říct. Očekává se, že Samba 4 bude mít plnou integrovanou podporu pro NT ACL, ale prozatím můžete použít to, co máte.
Pokud máte co dodat k rozšířeným atributům v Sambě a jak s nimi pracovat, určitě napište do tohoto vlákna fóra. Budu vděčný za jakékoli odkazy, články a komentáře k tématu.
Navíc rozšířené atributy systému souborů umožňují Sambě zahrnout plnou podporu pro atributy souborů DOS, jako je skrytý, archiv atd.
Budeme tedy předpokládat, že máte v systému adresář, který chcete sdílet přes Sambu (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 zdaleka všechny možné možnosti, jen několik docela užitečných):
# Zakázat sdílení tiskárny. Pokud je ovšem opravdu nechcete sdílet. # Úplné zakázání všech 4 řádků níže načíst tiskárny = no show add printer wizard = no printcap name = /dev/null disable spoolss = yes # Skrýt ji při pohledu z soubory Windows s následujícími jmény skrýt soubory = /$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/ # Použít následujícího uživatele UNIX jako účet hosta pro veřejné sdílení = nikdo # Zacházet s neregistrovanými uživateli jako s mapou hosta guest = Špatný uživatel ## Nastavení pomocí rozšířených atributů souborového systému # Zpracovat dědičnost oprávnění pomocí rozšířených atributů souborového systému map acl inherit = yes # Použít rozšířené atributy souborového systému k uložení atributů DOS store atributů DOS = yes # Zakázat mapování atributů DOS na oprávnění UNIX, výchozí povoleno # Podle man smb.conf musí být tyto možnosti zakázány při použití rozšířených atributů map archive = no map system = no map hidden = no map readonly = no
Nyní nastavení přímo sdíleného prostředku. Mám to nazvané profily a fyzicky na počítači Ubuntu se nachází na adrese /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. # Tito uživatelé jsou při práci se soubory považováni za místní root uživatelé admin = "@DOMAIN\Domain Admins" # Skrýt složky, ke kterým uživatel nemá přístup skrýt nečitelné = ano # Přístup pouze pro čtení pouze pro čtení = ne # Masky pro vytvořené soubory - lze nastavit podle potřeby #vytvořit masku = 0600 #maska adresáře = 0700 # Zakázat zamykání - je lepší zamykání vypnout = ne
Existuje mnoho dalších možností – podrobnosti naleznete v dokumentaci k Sambě.
Nezapomeňte nastavit správného vlastníka a oprávnění pro složku, kterou sdílíte, jinak může být bez ohledu na nastavení samby zápis do ní na úrovni práv Linuxu zakázán. Obvykle dělám toto:
sudo chmod ug+rwx /var/data/profiles sudo chown root:"uživatelé domény" /var/data/profiles
Všimněte si, že protože váš počítač Ubuntu je zadán jako doména, můžete používat uživatele a skupiny domény jako vlastníky souborů přímo v Ubuntu.
Pomocí příkazu ověřte správnost konfigurace Samby
testparm
Poté restartujte Sambu:
sudo /etc/init.d/samba restart
Nyní máte přístup ke sdílenému prostředku 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 skupinu vlastníků a zabránit uživatelům v mazání souborů, které nejsou jejich vlastní – 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í s uživatelskými daty.
Samostatný souborový server
Ne každý má doménu Active Directory. Proto je často nutné organizovat offline úložiště souborů na počítači se systémem Linux s vlastním autorizačním systémem. To je velmi snadné.
Hlavním rysem takové organizace ukládání souborů bude, že všechny informace o uživatelích budou uloženy v databázi Samba, respektive budete muset ručně přidávat a odebírat uživatele do samby.
Nejdůležitější je rozhodnout o metodě použité pro přístup ke zdroji. Chcete-li jej změnit, musíte správně nastavit hodnotu bezpečnostního parametru v sekci souboru /etc/samba/smb.conf. Více o tomto parametru nebo v oficiální dokumentaci.
Obvykle je 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=Špatný uživatel netbios name=NOTEBOOK security=userNOTEBOOK – název počítače, který bude v síti. Kromě toho musíte nainstalovat další 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, nahraďte yuraku1504 uživatelským jménem počítače samba:
[MyShareWork] komentář = Anonymní Samba Sdílet cesta = / 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.