Nejnovější verze, kterou najdete na:
http://linux.bononline.nl/linux/automountsmbshares/index.php
Index
- 1. Úvod a shrnutí
Úvod
Nějakou dobu jsem hledal dobrý způsob, jak nechat můj počítač objevit síť Windows a připojit sdílené položky na vyžádání. V tuto chvíli neexistuje dost dobré řešení. Po vyzkoušení kioslaves v desktopu dle mého výběru (KDE) a FUSE programů Fusesmb a SmbNetFs jsem opravdu spokojen nebyl. Musel existovat způsob, jak nechat můj počítač objevit všechny pracovní skupiny/domény, hostitele a sdílené položky a na požádání připojit sdílenou složku k hostitelům. Někteří řeknou:namontujte akcie dle vašeho výběru ručně a můžete jít. Ale ne!! To není to, co chci. Mohu nechat svůj počítač, aby automaticky objevil všechny dostupné hostitele a sdílené složky, a připojit sdílenou složku pouze v případě potřeby. To by mělo být možné! A po vyzkoušení jsem zjistil, že ano!
Následující problémy jsou nezbytné:
- automatické zjišťování sítě SMB (domény, hostitelé a sdílené položky)
- vytvoření reprezentace, která dává smysl uživatelům přihlášeným v jejich domovském adresáři
- automatické připojování akcií na vyžádání
- automatické odpojení sdílení po určité době nepoužívání
- používání kernel fs jako SMBFS nebo CIFS
- nezávislý na správci plochy
- podpora dalších síťových služeb jako SSH a FTP
Program FUSE Fusesmb se velmi blíží tomu, co hledám, ale postrádá rozšířené možnosti CIFS, jako je správná prezentace oprávnění, podpora inotify, symbolický odkaz a ATTR/ACL. Chvíli mi trvalo, než jsem zjistil, proč program FUSE tyto funkce postrádá. FuseSMB je založen na knihovně smbclient smbclient.so, která je součástí balíčku Samba a nemá nic společného se smbfs nebo cifs.
Výsledek
Výsledkem této konstrukce je síťový adresář (Global Network) ve vašem domovském adresáři, kde automounter poskytuje procházet strom pro přístup ke všem podporovaným síťovým službám.
V tuto chvíli podporuje služby SMB a SSH (pracuji na FTP). Přístup k "připojovacímu bodu sítě":
/home/sbon/Global Network/
Hostitelé SSH
Síť Windows
Při přístupu k síti Windows (==smb) se zobrazí všechny pracovní skupiny a/nebo domény:
/Home /SBON /Global Network /
SSH hostitelé
Windows Network
bononline
cwwerkgroep
Po vstupu do pracovní skupiny CWVERKGROEP se zobrazí všechny servery a další hostitelé:
/Home /SBON /Global Network /
SSH hostitelé
Windows Network
bononline
cwwerkgroep
router
pc1
Po vstupu do ROUTER serveru se zobrazí sdílené položky dostupné připojujícímu se uživateli:
/Home /SBON /Global Network /
SSH hostitelé
Windows Network
bononline
cwwerkgroep
router
cwdocumenten
public
sbon
Při přístupu ke sdílené složce se automaticky připojí (s CIFS nebo SMBFS). Použití přihlašovacích údajů je podporováno, přihlášení hosta jsou výchozí.
K vytvoření „mapy více připojení“ pro službu smb se používá síťová mezipaměť. Poskytuje informace o pracovních skupinách a/nebo doménách. k dispozici hostitelé a server a sdílené položky. Je spravován některými skripty, které využívají některé nástroje (nbtscan k určení hostitelů a pracovních skupin/domén a smbclient k určení sdílení na hostitele).
Při přístupu k hostitelům SSH (=ssh) se zobrazí všichni hostitelé, ke kterým má tento uživatel přístup:
/home/sbon/Global Network/
Hostitelé SSH
/ 192.168.0.2 Síť Windows
Zde není k vytvoření tohoto stromu použita žádná cache, ale soubor .known_hosts. Dále nebyl k dispozici žádný mount.sshfs. Vytvořil jsem jeden pomocí FUSE a sshfs. (a umount.sshfs).
Nyní při přístupu k hostiteli 192.168.0.2 je připojen root na 192.168.0.2.
Jak to funguje
Tato konstrukce využívá automounter. Když se uživatel přihlásí a spustí se nová relace, do souboru auto.master se přidá "networkmountpoint" a démon automounter dostane signál "reload". Tento přípojný bod, výchozí název "Globální síť", je v domovském adresáři uživatele. S ním je spojen skript (auto.network), který vytváří mapu na základě všech podporovaných síťových služeb a objevených zdrojů. Spolu s možností procházení to poskytuje mapu, kterou lze procházet, kde jsou sdílené položky/hostitelé připojeni při přístupu.
Když se uživatel odhlásí, a tím relace skončí, přípojný bod je znovu odstraněn a démon automatického připojení dostane znovu signál pro opětovné načtení, aby se změny projevily.
Zde se využívá schopnost KDM spouštět skripty s oprávněním root na začátku a na konci relace.
V tuto chvíli jsou podporovány pouze SMB a SSH.
Známé problémy
Jsou zde určitá úzká hrdla:
- když se přidá sdílená složka, hostitel přejde do režimu offline nebo se cokoli jiného změní v prostředí smb, chvíli to trvá, než se to zobrazí také v mezipaměti. Tato mezipaměť je udržována pomocí nějakého skriptu, který pracuje s mechanismem založeným na "pull". Za druhé, automounter sám o sobě nezjistí, že se data v mezipaměti změnila. Obnovuje pouze svá vlastní data (mapu pro více připojení) po vypršení časového limitu, a ani poté nezíská úplně všechny změny.
- Automounter je instruován, aby předložil mapu připojení, kterou lze procházet. To znamená, že adresáře nejvyšší úrovně jsou vždy dostupné. To je velmi dobrá věc, dostupné sítě jsou vždy viditelné a dostupné pro uživatele, a to i po uplynutí časového limitu. V praxi někdy zmizí jedna ze "síťových služeb"...
- automounter má nějaké problémy při spuštění s prázdným souborem auto.master (a prázdnými zahrnuty). Při bootování, kdy není přihlášen žádný uživatel, a tedy žádné přípojné body spravované autofs, musí být automounter spuštěn s prázdnou mapou.
Odkazy
Přístup k oknům nebo sdílení samby pomocí autofs
průvodce nastavením automatického nastavení pro sdílení SMB pomocí existujících souborů;
Integrace hostitele Linuxu do prostředí Windows
průvodce nastavením autofs pro přístup ke sdíleným složkám alternativním způsobem.
JAK NA TO Automatické připojení souborových systémů (AUTOFS) / udev s autofs
Zde je téměř stejná konstrukce použita pro montáž hardwaru pomocí autofs s udev. Zde jsou také přípojné body dynamicky přidávány a odebírány do souboru auto.master.