Mount google drive in linux è una delle ricerche che ho fatto senza ottenere risultati apprezzabili o di immediata soluzione.
Mount Google Drive
Mentre per gli utenti del pessimo sistema operativo a finestre si trova praticamente tutto, per chi usa il pinguino si trova poco o niente e di conseguenza il povero linuxaro deve contentarsi di soluzioni alternative.
Dopo tanto peregrinare, ho approntato questa soluzione, forse poco ortodossa ma comunque free e basata su un software di cui ne viene rilasciato il codice sorgente, quindi siamo sicuri che non ci siano porcherie nel software.
L’obiettivo che voglio raggiungere è ottenere una directory montata come disco remoto che vada a puntare sul utilissimo servizio di google.
Io ho acquistato uno spazio da 1Tb, in questo spazio posso allocare i miei file personali.
Di default non è possibile effettuare il mount google drive, quindi è necessario utilizzare un apposito client.
Nonostante le rassicurazioni del nostro amatissimo google, io credo che a pensar male si faccia peccato, tuttavia ci si azzecca molto spesso, pertanto una cryptatina ai file, prima di mandarli a lui non guasta.
Cominciamo subito con un debootstrap per installare la nostra solita Debian, per chi volesse scaricare un immagine da installare può farlo da qui, io preferisco il debootstrap.
Quando tutto sarà installato e configurato per poter funzionare come serve a noi, possiamo cominciare a scaricare i pacchetti necessari al mount google drive, ovvero al montaggio del disco remoto e qualche altro software di contorno.
# apt-get update && apt-get upgrade -y
# apt-get install vim m4 libcurl4-gnutls-dev libfuse-dev libsqlite3-dev opam ocaml make fuse camlp4-extra build-essential pkg-config zlib1g zlib1g-dev sshfs ecryptfs-utils cryptsetup mc -y
Rispondiamo correttamente alle eventuali domande tipo settaggio della tastiera, se ci viene richiesto.
Creiamo la directory che ospiterà il disco remoto cifrato e la directory locale che decifrerà il disco remoto.
# mkdir /.google-drive
# mkdir /BACKUP
Il mount google drive funzionerà in questo modo, i file in chiaro vengono spediti alla directory /BACKUP, questa li cifra e li invia alla directory /.google-drive/posizione_google nella quale è mappata la directory remota di google.
Configuriamo il client, putroppo è necessaria un interfaccia grafica perché google utilizza dei javascript che non funzionano con lynx pertanto dovremmo configurare una parte sul server ed una parte su un client dotato di interfaccia grafica.
Procediamo così:
Aggiungiamo il gruppo fuser, se esiste già il sistema ci informerà che il gruppo è già stato creato
# groupadd fuse
Adesso dobbiamo informare il sistema che l’utente root, l’utente che effettuerà il mount google drive, appartiene al gruppo fuse
# adduser root fuse
Prendiamo adesso i pacchetti necessari
# opam init
Aggiorniamo con i pacchetti nuovi
# opam update
# opam install depext
# opam depext google-drive-ocamlfuse
Procediamo con l’installazione
# . /root/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true
# opam install google-drive-ocamlfuse
Per il server, il sistema senza interfaccia grafica, ci dobbiamo fermare qui per il sistema con interfaccia grafica proseguiamo, infatti da questo momento in poi dobbiamo forgiare le credenziali che provvederemo a spostare sul server.
Ci muniamo di un computer con interfaccia grafica,e digitiamo nella shell:
$ google-drive-ocamlfuse -label nostrologin@gmail.com
Il comando provvederà ad aprirci il browser ed a portarci nella nostra area google drive, consentiamo l’uso offline del programma oclamlfuse ed usciamo.
Questo passaggio farà si che venga costruita la directory .gdfuse al cui interno sono memorizzate le credenziali necessarie al mount google drive, quindi dobbiamo copiare questa directory nel server, quello senza interfaccia grafica.
$ sshfs root@ipdelserver:/ /mnt
$ cp -R ~/.gdfuse /mnt/root
$ su -c ‘umount /mnt’
Torniamo a lavorare sul server precedente, quello senza interfaccia grafica e che deve effettuare il mount google drive
Controlliamo il contenuto della directory /root
# ls -la
……
drwx—— 3 root root 4096 ott 17 08:47 .gdfuse
……
perfetto, la directory è stata copiata, è il momento di montare il disco remoto. Per effettuare il mount google drive
digitiamo il comando:
# google-drive-ocamlfuse -label username@gmail.com /.google-drive
se tutto è andato per il meglio, digitando il comando mount dovremmo poter verificare l’avvenuto mount google drive
# mount
google-drive-ocamlfuse on /.google-drive type fuse.google-drive-ocamlfuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
ottimo, il mount google drive è avvenuto.
Giunti fin qui, creiamo la nostra prima directory e da un browser verificiamo che questa venga creata realmente
# mkdir /.google-drive/.backup1
creo le directory con il punto davanti al nome così da nasconderle e non vederle
Se la directory viene creata , possiamo procedere a cifrarla mappandola in chiaro nella directory /BACKUP
Procediamo quindi con il creare una chiave
# NAM=unwrapped.key && PAT=”/root” && NUM=$RANDOM && echo -n “passwd=”>$PAT/$NAM && KEY=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-$NUM};echo;` && echo -n $KEY >>$PAT/$NAM && chmod 400 $PAT/$NAM
adesso che possediamo la chiave, procediamo con il mappare l’area decifrata nell’area cifrata.
# mount -t ecryptfs -o ecryptfs_cipher=blowfish,ecryptfs_key_bytes=56,key=passphrase:passfile=/root/unwrapped.key,ecryptfs_unlink_sigs,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=yes /.google-drive/.backup1/ /BACKUP
Rispondiamo sempre y ed alla fine dovremmo avere /BACKUP mappato in /.google-drive/.backup1
per verificare se il tutto funziona, sarà sufficiente copiare un file in /BACKUP per poterlo ammirare cifrato dal web.