Ti trovi qui : Linux » [HOWTO] Come condividere files e cartelle in maniera sicura, facile, veloce, pratica :-)
[HOWTO] Come condividere files e cartelle in maniera sicura, facile, veloce, pratica :-)
![]()
Errata Corrige 18/3/2008: Corretta una mia svista e modificato leggermente il tutorial per maggior chiarezza.
Se siete maniaci come me ed avete un vostro piccolo serverino personale, o più semplicemente vi serve qualcosa di pratico per lavorare con i dischi del vostro desktop appena arrivate a casa e accendete il portatile, questa soluzione è adattissima e richiede soltanto 5 minuti per essere attuata, una volta per tutte.
L’articolo prende come esempio 2 box: una Debian Sid e una Arch Current, ma con poche modifiche il tutorial è utilizzabile su qualsiasi distribuzione vogliate. Da questo momento consideriamo (per praticità) Server la macchina in cui avete i dischi e/o le cartelle da condividere e Client la macchina sulla quale volete usufruire dei suddetti dischi.
Preparazione del Server (Debian Sid)
Installiamo (se non è già presente) un server SSH (secureshell) che ci servirà per accere alla macchina da remoto e condividere le risorse.
$ sudo apt-get install openssh-server
Preparazione del Client (Arch Current)
Installiamo client ssh e sshfs (secureshell file system)
server$ sudo pacman -S openssh sshfs
Adesso generiamo una coppia di chiavi, di cui una andrà sul server e una rimarrà qui. Con questo semplice sistema, possiamo accedere alla macchina server senza aver bisogno di password. Il tutto è sicuro perchè funzionerà soltanto se l’ip del client e lo user name usato per connettersi al server non varieranno. Nota: Il comando che segue (ssh-keygen) chiederà una password - che non ha niente a che vedere con le password degli utenti -. Nel nostro esempio non la utilizziamo quindi premiamo invio in risposta a questa richiesta.
client$ ssh-keygen -t dsa -f .ssh/id_dsa client$ cd .ssh client$ scp id_dsa.pub username@ipserver:/home/username/.ssh/
sostituite a username il nome utente del server e a ipserver l’indirizzo ip del server. Vi verrà richiesta la password (soltanto questa volta se tutto andrà per il meglio) Ora accediamo al server tramite ssh e sistemiamo la chiave che abbiamo trasferito. In pratica saremo collegati al nostro pc tramite una shell remota:
client$ ssh username@ipserver server$ cd .ssh server$ cat id_dsa.pub >> authorized_keys2 server$ chmod 640 authorized_keys2 server$ rm id_dsa.pub server$ exit client$
A questo punto non abbiamo più bisogno di password per entrare da remoto sul server. Il tutto è a nostro pieno vantaggio, torniamo alla situazione descritta in apertura: avvio il portatile e mi ritrovo il disco remoto sul server già bello e pronto da sfruttare esattamente come fosse locale (salvo velocità della lan). Nota: Naturalmente i permessi di lettura/scrittura per il disco/cartella che intendiamo condividere devono essere correttamente settati per l’utente che effettua accesso al server. La risorsa deve essere quindi anche pronta e montata.
SSHFs
Utilizziamo adesso SSHFs, che è appunto un filesystem che sfrutta il protocollo di comunicazione ssh che abbiamo fino ad adesso utilizzato. Ci occorre un punto di mount come qualsiasi altro disco/risorsa. Creiamone uno:
client$ mkdir dati-server
Sfruttiamo anche un piccolo script bash molto utile in questo caso.
#!/bin/bash if ping -c1 ipserver |grep '1 received'; then sshfs username@ipserver:/percorso dati-server/ filo script è molto semplice: controlla se il server è in linea tramite un ping ed eventualmente monta la risorsa. Sostituiamo ovviamente username e ipserver come prima; /percorso è la cartella da condividere (quindi può essere anche un punto di mount). Rendiamo eseguibile lo script e inseriamolo in esecuzione automatica:
client$ chmod +x sshfs-server.sh client$ sudo echo 'su username -c "/home/username/sshfs-server.sh &"' >> /etc/rc.local
Nota: Fate caso alla forma usata subito qui sopra: su username -c “comando”. Abbiamo detto che l’accesso con la coppia di chiavi è valida soltanto per l’utente che le genera, inserendo un comando in /etc/rc.local, questo verrebbe eseguito come fosse utente root. Utilizziamo quindi su username -c “comando” per fare in modo che sia l’utente interessato ad eseguire il comando. Naturalmente essendo system boot (id 0) a chiamare il comando tramite su, la password dell’utente non viene richiesta
Proviamo se il tutto funziona come dovrebbe:
client$ ./sshfs-server.sh
Se tutto è andato bene non visualizzeremo alcun errore dallo script. A questo punto, la nostra risorsa è montata in dati-server/ e perfettamente accessibile
ogni qualvolta avviamo il portatile.
lunedì, marzo 17 2008
Taggato come Arch, Debian, Linux, Tutorial, bash
Scritto da LuNa

La Classifica di Linux Feed
- 1) chimerarevo.com
- 2) hackgeek.it
- 3) arresojas.it
- 4) tuxmind.org
- 5) linux.billera.eu
- 6) linuxedintorni.org
- 7) moosesoom.blogspot.com
- 8) picchiopc.blogspot.com
- 9) logubuntu.it
- 10) mypaglia.altervista.org















