SSHFS: montare una risorsa remota sfruttando FUSE ed SSH: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
(modificata gerarchia titoli)
Riga 1: Riga 1:
{{Versioni compatibili|Tutte le versioni di Debian|}}
{{Versioni compatibili|Tutte le versioni di Debian|}}
=Introduzione=
== Introduzione ==
Spesso può essere necessario lavorare direttamente su un filesystem remoto (si pensi, ad esempio, alla webroot di un sito o alla home del proprio portatile).
Spesso può essere necessario lavorare direttamente su un filesystem remoto (si pensi, ad esempio, alla webroot di un sito o alla home del proprio portatile).


'''<code>Sshfs</code>''' permette di superare questo problema in un modo semplice e pulito: montando una directory mediante [http://fuse.sourceforge.net/ FUSE], usando il protocollo [[SSH]].
'''<code>Sshfs</code>''' permette di superare questo problema in un modo semplice e pulito: montando una directory mediante [http://fuse.sourceforge.net/ FUSE], usando il protocollo [[SSH]].


=Installazione=
== Installazione ==
Il pacchetto sshfs e le utility per gestire FUSE son già presenti in Debian, quindi l'installazione si riduce ad un semplice:
Il pacchetto sshfs e le utility per gestire FUSE sono già presenti in Debian, quindi l'installazione si riduce ad un semplice:
<pre>
<pre>
# apt-get install sshfs fuse-utils
# apt-get install sshfs fuse-utils
Riga 15: Riga 15:
Il modulo da attivare si trova in: ''File systems  --->  Filesystem in Userspace support''.
Il modulo da attivare si trova in: ''File systems  --->  Filesystem in Userspace support''.


=Configurazione=
== Configurazione ==
==Creazione del punto di mount==
=== Creazione del punto di mount ===
Prima di tutto è necessario creare un [[mountpoint | punto di montaggio]] in cui montare la risorsa di rete (ovviamente ognuno è liberissimo di utilizzare la directory che vuole):
Prima di tutto è necessario creare un [[mountpoint | punto di montaggio]] in cui montare la risorsa di rete (ovviamente ognuno è liberissimo di utilizzare la directory che vuole):
<pre>
<pre>
Riga 26: Riga 26:
</pre>
</pre>


==Permessi utenti==
=== Permessi utenti ===
È possibile permettere l'utilizzo di sshfs anche agli utenti normali, seguendo i seguenti passaggi:
È possibile permettere l'utilizzo di sshfs anche agli utenti normali, seguendo i seguenti passaggi:
<pre>
<pre>
Riga 37: Riga 37:
Per rendere effettiva l'aggiunta al gruppo è necessario effettuare un logout-login.
Per rendere effettiva l'aggiunta al gruppo è necessario effettuare un logout-login.


=Utilizzo e Test=
== Utilizzo e Test ==
L'utilizzo è semplice:
L'utilizzo è semplice:
<pre>
<pre>
Riga 43: Riga 43:
</pre>
</pre>
dove
dove
; user : è l'utente della macchina remota (se omesso verrà utilizzato l'username dell'utente che lancia il comando (root, in questo caso)
; <code>user</code>: è l'utente della macchina remota, se omesso verrà utilizzato l'username dell'utente che lancia il comando (root, in questo caso);
; host : è l'indirizzo IP o l'URL a cui la macchina remota risponde
; <code>host</code>: è l'indirizzo IP o l'URL a cui la macchina remota risponde;
; /dir/to/mount : è il percorso assoluto della directory da montare, (è possibile anche utilizzare un percorso relativo a partire dalla directory home dell'utente: ''./path/to/dir'')
; <code>/dir/to/mount</code>: è il percorso assoluto della directory da montare, (è possibile anche utilizzare un percorso relativo a partire dalla directory home dell'utente: <code>''./path/to/dir''</code>);
; /mnt/sshdir : rappresenta il punto di mount
; <code>/mnt/sshdir</code>: rappresenta il punto di mount;


per controllare la riuscita del comando, si può analizzare l'output del comando: <pre>
per controllare la riuscita del comando, si può analizzare l'output del comando: <pre>
Riga 58: Riga 58:
</pre>
</pre>


=Faq ed Errori Frequenti=
== Faq ed Errori Frequenti ==
==failed to open /dev/fuse: No such file or directory==
=== failed to open <code>/dev/fuse</code>: No such file or directory ===
L'errore è dovuto alla mancanza del modulo del kernel relativo a ''fusefs''. È necessario compilarlo come modulo o staticamente (nei kernel pacchettizzati Debian è presente, ed è caricabile con un <pre>
L'errore è dovuto alla mancanza del modulo del kernel relativo a ''fusefs''. È necessario compilarlo come modulo o staticamente (nei kernel pacchettizzati Debian è presente, ed è caricabile con un <pre>
# modprobe fuse
# modprobe fuse
</pre>
</pre>


==mountpoint is not empty==
=== mountpoint is not empty ===
Se si cerca di montare una risorsa in un [[mountpoint]] contenente già dei file, può apparire il seguente errore:
Se si cerca di montare una risorsa in un [[mountpoint]] contenente già dei file, può apparire il seguente errore:
<pre>fusermount: mountpoint is not empty
<pre>fusermount: mountpoint is not empty
Riga 70: Riga 70:
Le soluzioni sono:
Le soluzioni sono:
* usare un mountpoint libero (consigliata)
* usare un mountpoint libero (consigliata)
* appendere, dopo il comando ''sshfs'' l'opzione ''-o nonempty''
* appendere, dopo il comando <code>''sshfs''</code> l'opzione <code>''-o nonempty''</code>
[[Categoria:Networking]][[Categoria:Desktop]]
[[Categoria:Networking]][[Categoria:Desktop]]


==fusermount: mount failed: Invalid argument==
=== fusermount: mount failed: Invalid argument ===
È possibile che la versione dei pacchetti fuse-utils, libfuse2, sshfs-fuse non sia sufficientemente aggiornata rispetto alla versione del kernel in uso.
È possibile che la versione dei pacchetti fuse-utils, libfuse2, sshfs-fuse non sia sufficientemente aggiornata rispetto alla versione del kernel in uso.
Si legga in particolare la discussione apparsa su queste pagine nel forum [[http://www.debianizzati.org/index.php?option=com_joomlaboard&Itemid=29&func=view&id=21673&catid=19#21673]]:
Si legga in particolare la discussione apparsa su queste pagine nel forum [[http://www.debianizzati.org/index.php?option=com_joomlaboard&Itemid=29&func=view&id=21673&catid=19#21673]]:
la soluzione prospettata è quella  di sostituire e aggiornare i pacchetti a tutt'oggi disponibili (per la sarge: fuse-utils 2.2.1-4, libfuse2 2.2.1-4, sshfs 1.1-1 ) con le versioni a disposizione su [http://www.backports.org/ http://www.backports.org/] (fuse-utils 2.5.3-1bpo1, libfuse2 2.5.3-1bpo1, sshfs_1.6-0bpo1) seguendo le relative [http://www.backports.org/dokuwiki/doku.php?id=instructions istruzioni].
la soluzione prospettata è quella  di sostituire e aggiornare i pacchetti a tutt'oggi disponibili (per la sarge: fuse-utils 2.2.1-4, libfuse2 2.2.1-4, sshfs 1.1-1 ) con le versioni a disposizione su [http://www.backports.org/ http://www.backports.org/] (fuse-utils 2.5.3-1bpo1, libfuse2 2.5.3-1bpo1, sshfs_1.6-0bpo1) seguendo le relative [http://www.backports.org/dokuwiki/doku.php?id=instructions istruzioni].

Versione delle 15:47, 6 feb 2010

Debian-swirl.png Versioni Compatibili

ERRORE: valore non valido ( Tutte le versioni di Debian )! Vedi qui.

Introduzione

Spesso può essere necessario lavorare direttamente su un filesystem remoto (si pensi, ad esempio, alla webroot di un sito o alla home del proprio portatile).

Sshfs permette di superare questo problema in un modo semplice e pulito: montando una directory mediante FUSE, usando il protocollo SSH.

Installazione

Il pacchetto sshfs e le utility per gestire FUSE sono già presenti in Debian, quindi l'installazione si riduce ad un semplice:

# apt-get install sshfs fuse-utils

Per quanto riguarda il kernel, normalmente è presente il modulo fuse. Se non è presente è necessaria la ricompilazione del kernel.

Il modulo da attivare si trova in: File systems ---> Filesystem in Userspace support.

Configurazione

Creazione del punto di mount

Prima di tutto è necessario creare un punto di montaggio in cui montare la risorsa di rete (ovviamente ognuno è liberissimo di utilizzare la directory che vuole):

# mkdir /mnt/sshdir

è necessario, inoltre, impostare l'utente che utilizzerà questa directory come owner:

# chown username /mnt/sshdir

Permessi utenti

È possibile permettere l'utilizzo di sshfs anche agli utenti normali, seguendo i seguenti passaggi:

# chgrp fuse /usr/bin/fusermount
# chmod u+s /usr/bin/fusermount
# adduser nomeutente fuse

in questo modo permettiamo l'utilizzo del comando fusermount agli utenti appartenenti al gruppo fuse, e aggiungiamo l'utente che utilizzerà sshfs al gruppo fuse.

Per rendere effettiva l'aggiunta al gruppo è necessario effettuare un logout-login.

Utilizzo e Test

L'utilizzo è semplice:

$ sshfs user@host:/dir/to/mount /mnt/sshdir

dove

user
è l'utente della macchina remota, se omesso verrà utilizzato l'username dell'utente che lancia il comando (root, in questo caso);
host
è l'indirizzo IP o l'URL a cui la macchina remota risponde;
/dir/to/mount
è il percorso assoluto della directory da montare, (è possibile anche utilizzare un percorso relativo a partire dalla directory home dell'utente: ./path/to/dir);
/mnt/sshdir
rappresenta il punto di mount;

per controllare la riuscita del comando, si può analizzare l'output del comando:

$ mount


Per quanto riguarda lo smontaggio (umounting) il comando è il seguente:

$ fusermount -u /mnt/sshdir

Faq ed Errori Frequenti

failed to open /dev/fuse: No such file or directory

L'errore è dovuto alla mancanza del modulo del kernel relativo a fusefs. È necessario compilarlo come modulo o staticamente (nei kernel pacchettizzati Debian è presente, ed è caricabile con un

# modprobe fuse

mountpoint is not empty

Se si cerca di montare una risorsa in un mountpoint contenente già dei file, può apparire il seguente errore:

fusermount: mountpoint is not empty
fusermount: if you are sure this is safe, use the 'nonempty' mount option

Le soluzioni sono:

  • usare un mountpoint libero (consigliata)
  • appendere, dopo il comando sshfs l'opzione -o nonempty

fusermount: mount failed: Invalid argument

È possibile che la versione dei pacchetti fuse-utils, libfuse2, sshfs-fuse non sia sufficientemente aggiornata rispetto alla versione del kernel in uso. Si legga in particolare la discussione apparsa su queste pagine nel forum [[1]]: la soluzione prospettata è quella di sostituire e aggiornare i pacchetti a tutt'oggi disponibili (per la sarge: fuse-utils 2.2.1-4, libfuse2 2.2.1-4, sshfs 1.1-1 ) con le versioni a disposizione su http://www.backports.org/ (fuse-utils 2.5.3-1bpo1, libfuse2 2.5.3-1bpo1, sshfs_1.6-0bpo1) seguendo le relative istruzioni.