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

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (→‎Permessi utenti: aggiunto suid)
mNessun oggetto della modifica
Riga 1: Riga 1:
=Introduzione=
=Introduzione=
Spesso pu� essere necessario lavorare direttamente su un filesystem remoto (si pensi, ad esempio, alla webroot di un sito, alla home del proprio portatile, ...).
Spesso può essere necessario lavorare direttamente su un filesystem remoto (si pensi, ad esempio, alla webroot di un sito, alla home del proprio portatile, ...).


sshfs permette di superare questo problema in un modo semplice e pulito: montando una directory tramite il protocollo ssh.
sshfs permette di superare questo problema in un modo semplice e pulito: montando una directory tramite il protocollo ssh.


=Installazione=
=Installazione=
Il pacchetto sshfs � gi� presente in Debian, quindi l'installazione si riduce ad un semplice
Il pacchetto sshfs è già presente in Debian, quindi l'installazione si riduce ad un semplice
<pre>
<pre>
# apt-get install sshfs
# apt-get install sshfs
</pre>
</pre>


Per quanto riguarda il kernel, normalmente presente il modulo ''fuse''. Se non presente necessaria la ricompilazione del kernel.
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''
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 punto di mount 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>
# mkdir /mnt/sshdir
# mkdir /mnt/sshdir
</pre>
</pre>
necessario, inoltre, impostare l'utente che utilizzer� questa directory come ''[[owner]]'':
è necessario, inoltre, impostare l'utente che utilizzerà questa directory come ''[[owner]]'':
<pre>
<pre>
# chown username /mnt/sshdir
# chown username /mnt/sshdir
Riga 25: Riga 25:


==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>
# chgrp fuse /usr/bin/fusermount
# chgrp fuse /usr/bin/fusermount
# chmod u+s /usr/bin/fusermount
# adduser nomeutente fuse
# adduser nomeutente fuse
</pre>
</pre>
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.
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.
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>
# sshfs user@host:/dir/to/mount /mnt/sshdir
$ sshfs user@host:/dir/to/mount /mnt/sshdir
</pre>
</pre>
dove
dove
; user : l'utente della macchine remota (se omesso verr� utilizzato l'username dell'utente che lancia il comando (root, in questo caso)
; user : è l'utente della macchine 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
; 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 percordo relativo a partire dalla directory home dell'utente: ''./path/to/dir'')
; /dir/to/mount : è il percorso assoluto della directory da montare... (è possibile anche utilizzare un percordo relativo a partire dalla directory home dell'utente: ''./path/to/dir'')
; /mnt/sshdir : rappresenta il punto di mount
; /mnt/sshdir : 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>
$ mount
$ mount
</pre>
Per quanto riguarda lo smontaggio (umounting) il comando è il seguente:
<pre>
$ fusermount -u /mnt/sshdir
</pre>
</pre>


=Faq ed Errori Frequenti=
=Faq ed Errori Frequenti=
=fusermount: failed to open /dev/fuse: No such file or directory=
==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 <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==
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
fusermount: if you are sure this is safe, use the 'nonempty' mount option</pre>
Le soluzioni sono:
* usare un mountpoint libero (consigliata)
* appendere, dopo il comando ''sshfs'' l'opzione ''-o nonempty''
[[Categoria:Networking]][[Categoria:Desktop]]

Versione delle 21:04, 1 apr 2006

Introduzione

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

sshfs permette di superare questo problema in un modo semplice e pulito: montando una directory tramite il protocollo ssh.

Installazione

Il pacchetto sshfs è già presente in Debian, quindi l'installazione si riduce ad un semplice

# apt-get install sshfs

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 macchine 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 percordo 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