Sdílení souborů mezi systémy Ubuntu 20.04 a Windows pomocí Samby
On 21 ledna, 2022 by adminAčkoli Linux pronikl na trh stolních počítačů, jeho původ a budoucnost jsou do značné míry založeny na serverech. Není proto překvapivé, že Ubuntu má schopnost fungovat jako souborový server. Je také velmi běžné, že se systémy Ubuntu a Windows používají vedle sebe v síťových prostředích. Je proto běžným požadavkem, aby soubory v systému Ubuntu byly přístupné systémům Linux, UNIX a Windows prostřednictvím síťových připojení. Podobně může být nutné, aby sdílené složky a tiskárny umístěné v systémech Windows byly přístupné i ze systémů založených na Ubuntu.
Systémy Windows sdílejí prostředky, jako jsou souborové systémy a tiskárny, pomocí protokolu známého jako Server Message Block (SMB). Aby mohl systém Ubuntu poskytovat takové prostředky po síti systému Windows a naopak, musí proto podporovat SMB. Toho je dosaženo pomocí technologie zvané Samba. Kromě toho, že Samba zajišťuje integraci mezi systémy Linux a Windows, může být také použita k zajištění sdílení složek mezi systémy Linux (jako alternativa k systému NFS, který byl popsán v předchozí kapitole).
V této kapitole se budeme zabývat kroky potřebnými ke sdílení prostředků souborového systému a tiskáren v systému Ubuntu se vzdálenými systémy Windows a Linux a k přístupu ke zdrojům systému Windows ze systému Ubuntu.
1.1 Přístup ke zdrojům systému Windows z pracovní plochy GNOME
Než se pustíme do dalších podrobností sdílení Samba, stojí za zmínku, že pokud chcete pouze přistupovat ke sdíleným složkám systému Windows z pracovní plochy Ubuntu GNOME, pak je podpora již zajištěna v aplikaci Soubory GNOME. Aplikace Soubory se nachází v panelu, jak je zvýrazněno na obrázku 23-1:
Obrázek 23-1
Po spuštění vyberte v levém navigačním panelu možnost Jiná umístění a následně v hlavním panelu ikonu Síť Windows, abyste mohli procházet dostupné zdroje systému Windows:
Obrázek 23-2
1. Pokud chcete procházet dostupné zdroje systému Windows, vyberte v levém navigačním panelu možnost Další umístění.2 Samba a klient Samba
Samba umožňuje sdílení prostředků Ubuntu se systémy Windows i sdílení prostředků Windows se systémy Ubuntu. Ubuntu přistupuje ke zdrojům systému Windows pomocí klienta Samba. Prostředky Ubuntu se naopak se systémy Windows sdílejí instalací a konfigurací služby Samba.
1.3 Instalace Samby v systému Ubuntu
Ve výchozím nastavení použitém při instalaci Ubuntu se obvykle neinstalují potřebné balíčky Samby. Pokud jste výslovně nepožadovali instalaci Samby, je nepravděpodobné, že máte Sambu ve svém systému nainstalovanou. Chcete-li zkontrolovat, zda je Samba nainstalována, otevřete okno terminálu a spusťte následující příkaz:
# apt -qq list samba-common samba smbclient
Případné chybějící balíčky lze nainstalovat pomocí nástroje příkazového řádku apt:
# apt install samba-common samba smbclient
1.4 Konfigurace brány firewall Ubuntu pro povolení Samby
Dále je třeba nakonfigurovat bránu firewall, která v současné době chrání systém Ubuntu, aby umožňovala provoz Samby.
Pokud používáte nekomplikovaný firewall (ufw), spusťte následující příkaz:
# ufw allow samba
Případně, pokud používáte firewalld, spusťte příkaz firewall-cmd následujícím způsobem:
# firewall-cmd --permanent --add-port={139/tcp,445/tcp}# firewall-cmd --reload
Před spuštěním služby Samba je nutné provést řadu konfiguračních kroků, které definují, jak se bude systém Ubuntu jevit systémům Windows, a prostředky, které mají být sdíleny se vzdálenými klienty. Většina těchto konfiguračních úloh probíhá v souboru /etc/samba/smb. conf.
1.5 Konfigurace souboru smb.conf
Samba je velmi flexibilní a konfigurovatelný systém, který poskytuje mnoho různých možností řízení sdílení prostředků v sítích Windows. Tato flexibilita může vést k pocitu, že práce se Sambou je příliš složitá. Ve skutečnosti však mnoho možností konfigurace není při běžné instalaci potřeba a křivka učení pro nastavení základní konfigurace je ve skutečnosti poměrně krátká.
Pro účely této kapitoly se budeme zabývat připojením systému Ubuntu k pracovní skupině Windows a nastavením adresáře jako sdíleného prostředku, ke kterému má přístup konkrétní uživatel. Jedná se o konfiguraci známou jako samostatný server Samba. K dispozici jsou také pokročilejší konfigurace, jako je integrace Samby do prostředí Active Directory, ty jsou však mimo rozsah této knihy.
Prvním krokem při konfiguraci Samby je úprava souboru /etc/samba/smb.conf.
1.5.1 Konfigurace sekce
Soubor smb.conf je rozdělen do sekcí. První sekce je sekcí, ve které lze zadat nastavení platná pro celou konfiguraci Samby. Tato nastavení jsou sice globální, ale každá volba může být přepsána v rámci jiných sekcí konfiguračního souboru.
Prvním úkolem je definovat název pracovní skupiny systému Windows, ve které mají být sdíleny prostředky Ubuntu. To se řídí pomocí direktivy workgroup = v sekci, která je ve výchozím nastavení nakonfigurována takto:
workgroup = WORKGROUP
Pokud je to nutné, změňte tento údaj na skutečný název pracovní skupiny.
Kromě nastavení pracovní skupiny je v dalších nastaveních uvedeno, že se jedná o samostatný server, na kterém budou sdílené prostředky chráněny uživatelskými hesly. Než přejdete ke konfiguraci sdílených prostředků, je třeba do oddílu přidat také další parametry, a to následující:
.. netbios name = LinuxServer..
Vlastnost „netbios name“ určuje název, pod kterým bude server viditelný pro ostatní systémy v síti.
1.5.2 Konfigurace sdíleného prostředku
Dalším krokem je konfigurace sdílených prostředků (jinými slovy prostředků, které budou přístupné z jiných systémů v síti Windows). Za tímto účelem se oddílu přidělí jméno, pod kterým bude při sdílení označován. Pokud například plánujeme sdílet adresář /sampleshare našeho systému Ubuntu, můžeme sekci pojmenovat . V této sekci je možné použít různé konfigurační možnosti. Pro účely tohoto příkladu však jednoduše definujeme adresář, který má být sdílen, uvedeme, že adresář lze prohlížet i zapisovat, a prohlásíme prostředek za veřejný, aby k němu mohli získat přístup hostující uživatelé:
comment = Example Samba share path = /sampleshare browseable = Yes public = yes writable = yes
Pro omezení přístupu na konkrétní uživatele lze použít například vlastnost „valid users“:
valid users = demo, bobyoung, marcewing
1.5.3 Odstranění nepotřebných sdílení
Soubor smb.conf je předem nakonfigurován s oddíly pro sdílení tiskáren a domovských složek uživatelů v systému. Pokud tyto prostředky není třeba sdílet, lze příslušné sekce zakomentovat, aby je Samba ignorovala. V následujícím příkladu byla sekce zakomentována:
..## comment = Home Directories# valid users = %S, %D%w%S# browseable = No# read only = No# inherit acls = Yes..
1.6 Vytvoření uživatele Samba
Každý uživatel, který vyžaduje přístup ke sdílenému prostředku Samba, musí být nakonfigurován jako uživatel Samba a musí mu být přiděleno heslo. Tento úkol se provádí pomocí nástroje příkazového řádku smbpasswd. Uvažujme například, že uživatel s názvem demo musí mít přístup do adresáře /sampleshare našeho systému Ubuntu ze systému Windows. Abychom tento požadavek splnili, musíme přidat demo jako uživatele Samby následujícím způsobem:
# smbpasswd -a demoNew SMB password:Retype new SMB password:Added user demo.
Teď, když jsme dokončili konfiguraci velmi základního serveru Samba, je čas otestovat náš konfigurační soubor a poté spustit služby Samba.
1.7 Testování souboru smb.conf
Nastavení v souboru smb.conf lze zkontrolovat na přítomnost chyb pomocí nástroje příkazového řádku testparm takto:
# testparmLoad smb config files from /etc/samba/smb.confrlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)WARNING: The "syslog" option is deprecatedProcessing section ""Processing section ""Processing section ""Loaded services file OK.Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parametersdns proxy = Nolog file = /var/log/samba/log.%mmap to guest = Bad Usermax log size = 1000netbios name = LINUXSERVERobey pam restrictions = Yespam password change = Yespanic action = /usr/share/samba/panic-action %dpasswd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .passwd program = /usr/bin/passwd %usecurity = USERserver role = standalone serverserver string = %h server (Samba, Ubuntu)syslog = 0unix password sync = Yesusershare allow guests = Yeswins support = Yesidmap config * : backend = tdb browseable = Nocomment = All Printerscreate mask = 0700path = /var/spool/sambaprintable = Yes comment = Printer Driverspath = /var/lib/samba/printers comment = Example Samba shareguest ok = Yespath = /sampleshareread only = No
1.8 Spuštění jmenných služeb Samba a NetBIOS
Aby mohl server Ubuntu pracovat v síti Windows, musí být spuštěny služby Samba (SMB) i NetBIOS nameservice (NMB). Volitelně také povolte tyto služby tak, aby se spouštěly při každém spuštění systému:
# systemctl enable smbd# systemctl start smbd# systemctl enable nmbd# systemctl start nmbd
Před pokusem o připojení ze systému Windows ověřte pomocí nástroje smbclient, zda je sdílená složka nakonfigurována:
# smbclient -U demo -L localhost Enter WORKGROUP\demo's password: Sharename Type Comment--------- ---- -------print$ Disk Printer Driverssampleshare Disk Example Samba shareIPC$ IPC IPC Service (demo-server2 server (Samba, Ubuntu))Officejet_Pro_8600_C7C718_ Printer Officejet_6600_971B9B_ Printer Reconnecting with SMB1 for workgroup listing. Server Comment--------- ------- Workgroup Master--------- -------WORKGROUP LINUXSERVER
1. Zkontrolujte, zda je sdílená složka nakonfigurována.9 Přístup ke sdíleným prostředkům Samba
Když jsou prostředky Samba nakonfigurovány a služby spuštěny, je čas přistoupit ke sdílenému prostředku ze systému Windows. Ve vhodném systému Windows ve stejné pracovní skupině jako systém Ubuntu otevřete Průzkumníka Windows a přejděte na panel Síť. V tomto okamžiku by měl Průzkumník prohledat síť a vypsat všechny nalezené systémy používající protokol SMB. Následující obrázek znázorňuje systém Ubuntu s názvem LINUXSERVER umístěný pomocí Průzkumníka Windows v systému Windows 10:
Obrázek 23-3
Dvojklikem na hostitele LINUXSERVER bude požadováno jméno a heslo uživatele s přístupovými právy. V tomto případě se jedná o demo účet, který jsme nakonfigurovali pomocí nástroje smbpasswd:
Obrázek 23-4
Zadáním uživatelského jména a hesla se v okně průzkumníka objeví sdílené prostředky nakonfigurované pro tohoto uživatele, včetně dříve nakonfigurovaného prostředku /sampleshare:
Obrázek 23-5
Dvojklikem na sdílený prostředek /sampleshare se zobrazí výpis souborů a adresářů v něm obsažených.
Pokud se vám nedaří zobrazit systém Linux nebo máte problémy s přístupem ke sdílené složce, zkuste namapovat sdílenou složku Samba na místní jednotku systému Windows následujícím způsobem:
- Otevřete Průzkumníka souborů systému Windows, klikněte pravým tlačítkem myši na položku Síť v levém panelu a z výsledné nabídky vyberte možnost Mapovat síťovou jednotku…
- V dialogovém okně Mapovat síťovou jednotku vyberte písmeno jednotky a teprve poté zadejte cestu ke sdílené složce. Například:
\LinuxServer\sampleshare
Zaškrtněte políčko vedle možnosti Připojit pomocí jiných pověření. Pokud nechcete, aby se jednotka mapovala při každém přihlášení do systému Windows, vypněte příslušné zaškrtávací políčko:
Obrázek 23-6
Po zadání nastavení klikněte na tlačítko Dokončit pro namapování jednotky a po výzvě zadejte uživatelské jméno a heslo uživatele Samba nakonfigurované dříve v kapitole. Po krátké prodlevě se obsah sdílené složky Samba zobrazí v novém okně Průzkumníka souborů.
1.10 Přístup ke sdíleným složkám systému Windows z Ubuntu
Jak již bylo zmíněno, Samba je obousměrná, umožňuje nejen přístup systémů Windows k souborům a tiskárnám umístěným v systému Ubuntu, ale také umožňuje systému Ubuntu přistupovat ke sdíleným prostředkům v systémech Windows. Toho je dosaženo pomocí balíčku smbclient, který byl nainstalován na začátku této kapitoly. Pokud není v současné době nainstalován, nainstalujte jej z terminálového okna následujícím způsobem:
# apt install smbclient
Sdílené prostředky v systému Windows lze zpřístupnit buď z pracovní plochy Ubuntu pomocí aplikace Soubory, nebo z příkazového řádku pomocí nástrojů smbclient a mount. Kroky v této části předpokládají, že v systému Windows bylo povoleno příslušné nastavení sdílení sítě.
Chcete-li získat přístup k jakýmkoli sdíleným prostředkům v systému Windows pomocí pracovní plochy GNOME, začněte spuštěním aplikace Soubory a výběrem možnosti Jiná umístění. Zobrazí se obrazovka zobrazená na obrázku 23-7 níže včetně ikony sítě Windows (pokud je síť Windows zjištěna):
Obrázek 23-7
Zvolením možnosti Síť Windows se zobrazí systémy Windows zjištěné v síti a umožní se přístup ke všem sdíleným prostředkům.
Obrázek 23-8
K připojení k určitému systému lze alternativně použít možnost Připojit k serveru. Všimněte si, že název nebo IP adresa vzdáleného systému musí mít předponu smb:// a může za ní následovat cesta ke konkrétnímu sdílenému prostředku, například:
smb://WinServer10/Documents
1.11 Shrnutí
.
Napsat komentář