Před dvěma roky jsem zkusil propojení Windows počítače s Linux počítačem prostřednictvím aplikace Samba. Bez úspěchu. Zkoušel jsem všechno možné, ale nic. Nechal jsem to tedy uležet a včera jsem se k tomu znovu vrátil. Nakonec jsem byl úspěšný a tento článek vám předá kompletní návod, jak na to.
Konkrétně se jedná o propojení systémů OpenSuse 13.1 a Microsoft Windows 7. Postup bude podobný i ve vyšších verzích těchto systémů. Pokud máte Linux ve virtuálu, nemělo by být spojení nastaveno jako maškarádování NAT, ale např. jako bridge.
Nastavení OpenSuse
1. Zkontrolujte, zda je Samba nainstalovaná v systému.Menu - Yast - Síťová zařízení - Samba server
Pokud není Samba nainstalovaná, tak ji nainstalujte:
Menu - Yast - Software - Správce programů.
Zde vyhledejte výraz "Samba" a zaškrtněte k instalaci:
- samba
- samba-client
- samba-libs
- samba-winbind
- yast2-samba-client
- yast2-samba-server
Další balíčky si Samba přitáhne během instalace.
2. Pro jistotu zastavte antivirusPokud budete mít podezření, že vám něco blokuje antivirus, tak ho na začátku konfigurac ezastavte:
sudo /sbin/rcapparmor stop3. Spusťte souborový manažer, např. Dolphin jako správce (konzole, přihlásit se jako su - a spustit Dolphin). Založte někde složku, kterou chcete sdílet a vyberte pravým tlačítkem myši v Properties (Vlastnosti) záložky Share a Permissions.
Na obou záložkách povolte maximum, práva omezíte později (nezapomenout!), až to rozchodíte.
4. Spusťte Sambu:Menu - Yast - Síťová zařízení - Samba server
Záložka Start-Up:
- Spuštění služby během zavádění systému.
- Nastaveí firewallu: otevřít port na firewallu.
Záložka Shares:
Přidat... - vyberte složku, kterou jste nastavili pro nasdílení. Share Name bude stejné (pozor doporučuji, aby složka měla název max. 9 znaků kvůli kompatibilitě), později můžete experimentovat a název změnit.
Share Type: Directory.
Share Path: Vložte cestu (okopírujte z Dolphina) k adresáři např.
/home/Uzivatel/sdslozka/
Read only nezaškrtnout.
ACL práva nedědit.
Záložka Identity
Workgroup or Domain name: Zde je důležité nastavit stejný název Pracovní skupiny, jaký je na Windows. A nebo změnit Pracovní skupiny na Windows na tento název pracovní skupiny. Doména to samé.
Domain Controller: Primary.
5. Kontrola konfiguračního souboru Samby.Jdete do adresáře etc/Samba/smb.conf
Zkontrolujte jej:
[global]
workgroup = site
passdb backend = tdbsam
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
map to guest = Bad User
include = /etc/samba/dhcp.conf
logon path = %Lprofiles.msprofile
logon home = %L%U.9xprofile
logon drive = P:
usershare allow guests = Yes
add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
domain logons = Yes
domain master = Yes
local master = Yes
os level = 65
preferred master = Yes
security = user
usershare max shares = 10
wins support = No
[sdslozka]
comment = sdslozka
inherit acls = No
path = /home/Neo/sdslozka/
read only = No
Ostatní věci klidně smažte, ale předtím si soubor zálohujte.
6. Donastavte FirewallMenu - Yast - Bezpečnost a Uživatelé - Firewall
Povolené služby:
Klient Samby
Samba Server
Server Netbios
7. Kontrola Samby a NetbiosuJděte do adresáře etc/samba
spusťte
smbstatusUvidíte něco takového:
Samba version 4.1.22-3.51.1-3567-SUSE-oS13.1-i386
PID Username Group Machine
-------------------------------------------------------------------Příkazy:
systemctl restart smb.servicesudo smbpasswd -a Uzivatel+ zadejte dvakrát heslo
Uživatel musí být ten, který má povolení práva na danou složku.
/sbin/ifconfig = zjistěte si IP vašeho stroje (mělo by být nastaveno jako pevné)
systemctl restart nmb.serviceTak. Nyní by mělo být v Linuxu všechno nastaveno správně.
Přejdeme na Windows:
8. Spusťe průzkumníka.Do adresní řádky uveďte IP Linuxu např. 192.168.1.1
Zadejte přihlašovací údaje:
např.
nazevskupinyUzivatel
heslo
A je to.
9. Aktivace linuxového antiviruNa závěr můžete v Linuxu opět aktivovat antivir:
sudo /sbin/rcapparmor startMožné potíže:
- berte na vědomí, že pokud nastavíte Sambu správně, systému Windows (ŠNEK) několik minut potrvá, než pod kolonkou "Síť" zobrazí nasdílené složky.
- občas dochází v OpenSuse k záseku a problémům se sítí (jednou týdně), ale na jiné stanici zase nikdy. Pomůže odhlášení a přihlášení uživatele, případně stačí jen restart samby. Opět může pár minut trvat, než se změna projeví na Windows.
- stala se mi situace, kdy se nešlo k Sambě připojit vůbec. Zjistil jsem, že z nějakého důvodu si Samba začala sahat na hostname samba serveru. Pomohlo, když jsem vložil do souboru na samba serveru /etc/hosts tento záznam např. (ip = ip samba serveru):
192.168.1.1 linux-xxxx linux-xxxx
Správný název počítače se dozvíte ze souboru (včetně využití kwrite k prohlédnutí):
kwrite /proc/sys/kernel/hostname
Pozor Konzole může občas uvést jen část názvu (např. neuvádí to, co je za tečkou v názvu). Takže to jako obvykle, uživatele pořádně zmate... Což je asi účel.
Tento problém nejspíš několika vývojářů jsem luštil asi HODINU svého času, tak si toho važte. Správně by Samba (a na tomtéž drhne také Midnight Commander) měla nas...rat do logu informaci PŘESNĚ, co má za problém. Což defaultně neudělá, musíte zvednout logový level na stupeň 3.
---
Logování Samba - stupeň levelu
Borečci zavedli různé stupně logování, když dáte trojku, tak se dozvíte, co potřebujete vědět, ale je dobré změnit trojku zase na nulu, jinak tam bude Samba psát nepotřebné hovadiny.
Nastavení logování se dělá v souboru:
/etc/Samba/smb.conf
kde se vloží nebo modifikuje řádek log level = 3
A následně restartuje Samba:
systemctl restart smb.service
---
Příkazem
"systemctl status smb" si zobrazíte status samby včetně chybových stavů nebo informaci o připravenosti na spojení.
Kompatibilita
Přístup na disk vysdílený Sambou funguje na Linux OpenSuse, Windows XP, Windows 7, Windows 8 a pravděpodobně i na vyšších verzích. Jmenované systémy byly otestovány autorem.
Závěrem
Jak vidíte, jedná se o mizerných pár bodů, ale zabralo mi to tři hodiny nervů. Problémem Linuxu není jeho architektura, jeho filozofie, ale banda máloschopných programátorů, kteří tvoří software pro sebe, a tvoří jej tak, že jej nastavit umí jen TELEPAT a nebo známý těchto tvůrců, který pustí informaci dál a dál a dál... až se dostane k nám do české kotliny.
Nejvíc jsem se zasekl na tom, že musím založit uživatele do samby. Jiné návody praví, že je potřeba kvůli spárování se systémovými uživateli přihrát toto: libpam-smbpass, bohužel v balíčcích jsem nic takového neobjevil. Pokud budete mít nějaké další informace, prosím, napište do diskuse.
Samba by měla běžet na portech 137 - 139, pokud byste chtěli povolit jmenovitě tyto porty místo smb aplikací.
Zdroj:
http://stackoverflow.com/questions/25249762/process-usershare-file-stat-of-failed-permission-denied-samba