La versione più recente la troverai su:
http://linux.bononline.nl/linux/automountsmbshares/index.php
Indice
- 1. Introduzione e Riepilogo
Introduzione
Da tempo cercavo un buon modo per far scoprire al mio computer la rete Windows e montare condivisioni su richiesta. Non c'è una soluzione abbastanza buona per questo momento. Dopo aver provato i kioslave nel desktop di mia scelta (KDE) e i programmi FUSE Fusesmb e SmbNetFs, non sono rimasto molto soddisfatto. Doveva esserci un modo per consentire al mio computer di scoprire tutti i gruppi di lavoro/domini, gli host e le condivisioni e montare una condivisione su un host su richiesta. Qualcuno dirà:monta a mano le azioni di tua scelta e il gioco è fatto. Ma no!! Questo non è quello che voglio. Posso lasciare che il mio computer scopra automaticamente tutti gli host e le condivisioni disponibili e monti la condivisione solo quando necessario. Questo dovrebbe essere possibile! E dopo aver provato ho scoperto che lo è!
I seguenti problemi sono necessari imho:
- scoperta automatica della rete SMB (domini, host e condivisioni)
- costruzione di una rappresentazione che abbia senso per gli utenti registrati nella loro home directory
- Montaggio automatico di azioni su richiesta
- smontaggio automatico delle condivisioni dopo un certo periodo di inutilizzo
- uso di un kernel fs come SMBFS o CIFS
- indipendente da un Desktop Manager
- supporto di altri servizi di rete come SSH e FTP
Il programma FUSE Fusesmb si avvicina molto a quello che sto cercando, ma manca delle capacità estese di CIFS, come la corretta presentazione dei permessi, il supporto di inotify, symlink e ATTR/ACL. Mi ci è voluto del tempo per scoprire perché il programma FUSE non dispone di queste funzionalità. FuseSMB si basa sulla libreria smbclient smbclient.so, che fa parte del pacchetto Samba e non ha nulla a che fare con smbfs o cifs.
Il risultato
Il risultato di questa costruzione è una directory relativa alla rete (rete globale) nella tua homedirectory, in cui l'automounter fornisce un albero navigabile per accedere a tutti i servizi di rete supportati.
In questo momento supporta i servizi SMB e SSH (sto lavorando su FTP). Accesso al "punto di montaggio della rete":
/home/sbon/Global Network/
Host SSH
Rete Windows
Accedendo alla Rete Windows (==smb), compaiono tutti i gruppi di lavoro e/o domini:
/Home /SBON /Global Network /
host ssh
rete Windows
bononline
cwwerkgroep
Entrando nel gruppo di lavoro CWWERKGROEP, vengono visualizzati tutti i server e gli altri host:
/Home /SBON /Global Network /
host ssh
rete Windows
bononline
cwwerkgroep
router
pc1
Entrando nel server ROUTER, compaiono le condivisioni a disposizione dell'utente che si connette:
/Home /SBON /Global Network /
host ssh
rete Windows
bononline
cwwerkgroep
router
cwdocumenta
Accedendo a una condivisione, questa viene automaticamente montata (con CIFS o SMBFS). L'uso delle credenziali è supportato, gli accessi guest sono l'impostazione predefinita.
Per creare la "mappa multi mount" per il servizio smb, viene utilizzata una cache di rete. Fornisce informazioni su gruppi di lavoro e/o domini. host e server e condivisioni disponibili. È gestito da alcuni script, che utilizzano alcune utilità (nbtscan per determinare gli host e i gruppi di lavoro/domini e smbclient per determinare le condivisioni per host).
Accedendo agli host SSH (=ssh), verranno visualizzati tutti gli host a cui questo utente ha accesso:
/home/sbon/Global Network/
Host SSH
192.168.0.2
Rete Windows
Qui non viene utilizzata alcuna cache per creare questo albero, ma il file .known_hosts. Inoltre non era disponibile mount.sshfs. Ne ho creato uno, usando FUSE e sshfs. (e umount.sshfs).
Ora, quando si accede all'host 192.168.0.2, viene montata la radice su 192.168.0.2.
Come funziona
Questa costruzione fa uso dell'automounter. Quando un utente effettua il login e inizia una nuova sessione, viene aggiunto un "punto di montaggio di rete" al file auto.master e il daemon di montaggio automatico riceve un segnale di "ricarica". Questo punto di montaggio, il nome predefinito "Rete globale" si trova nella directory home dell'utente. Ad esso è collegato uno script (auto.network) che crea una mappa, basata su tutti i servizi di rete supportati e sulle risorse scoperte. Insieme all'opzione Sfoglia, fornisce una mappa navigabile, in cui le condivisioni/gli host vengono montati quando si accede.
Quando l'utente si disconnette, e quindi la sessione termina, il punto di montaggio viene nuovamente rimosso e il daemon di automounter riceve nuovamente un segnale di ricarica per rendere effettive le modifiche.
Qui viene utilizzata la capacità di KDM di eseguire script con privilegio di root all'inizio e alla fine di una sessione.
Al momento sono supportati solo SMB e SSH.
Problemi noti
Ci sono alcuni colli di bottiglia:
- quando viene aggiunta una condivisione, un host va offline o qualsiasi altra cosa cambia nell'ambiente smb, ci vuole del tempo quando è visibile anche nella cache. Questa cache viene mantenuta tramite alcuni script, che funzionano con un meccanismo basato su "pull". In secondo luogo, l'automounter non rileva da solo che i dati nella cache sono cambiati. Rinnova i propri dati (la mappa di montaggio multiplo) solo dopo un timeout, e anche in questo caso non ottiene completamente tutte le modifiche.
- all'automounter viene richiesto di presentare una mappa di montaggio sfogliabile. Ciò significa che le directory di livello superiore sono sempre disponibili. Questa è un'ottima cosa, le reti disponibili sono sempre visibili e accessibili all'utente, anche dopo un timeout. In pratica a volte uno dei "servizi di rete" scompare...
- l'automounter ha dei problemi quando si avvia con un file auto.master vuoto (e include vuote). All'avvio, quando nessun utente ha effettuato l'accesso, e quindi nessun punto di montaggio della rete gestito da autofs, l'automounter deve essere avviato con una mappa vuota.
Link
Accesso a windows o condivisioni samba usando autofs
una guida per impostare autofs per condivisioni SMB, utilizzando file esistenti;
Integrazione del tuo host Linux in un ambiente Windows
una guida per configurare autofs per accedere alle condivisioni in un modo alternativo.
HOWTO Monta automaticamente filesystem (AUTOFS) / udev con autofs
Qui viene utilizzata quasi la stessa costruzione per montare l'hardware usando autofs con udev. Anche qui i punti di montaggio vengono aggiunti e rimossi dinamicamente al file auto.master.