FUSE, sshfs og encfs

Dette er en artikel fra mine linux noter. De er frie, gratis og indeholder en 100 siders små artikler, howtos og guides angående Linux.

FUSE er Filsesystem in Userpace, altså muligheden for at lave et et ?lsystem som normal bruger uden at bruge administrative rettigheder. På denne måde kan man lave sine egne ?lsystemer og mounte dem et sted i sit home folder. Her kan man så retmæssig tænke – det lyder ?nt nok, men hvad skal man bruger det til? Svaret er at man på denne måde f.eks. kan mounte et ?lsystem over en krypteret ssh forbindelse, som en folder i sin egen home folder med sshfs. Lave en krypteret folder med encfs eller bruger noget at den utrolige mængde plads fra sin Gmail konto med gmailfs og der er endnu ?ere mulighed med FUSE – se http://fuse.sourceforge.net/wiki/index.php/FileSystems

Opsætning af FUSE
Installationen af FUSE og selve navnet af pakken variere lidt fra distribution, men det burde være meget nær dette, som er udført på en Ubuntu Dapper maskine:

 
tjansson@dirac:~$su 
Password: 
dirac tjansson $ aptitude install encfs sshfs gmailfs fuseutils

Bagefter skal vi loade fuse modulet ind i kernen med:

 
dirac tjansson $ modprobe fuse

hvis man ikke er interesseret i at gøre dette som root, hver gang man starte maskinen (det er man virkeligt ikke!), så kan man tilføje fuse til listen i ?len ?len/etc/modules. Derefter skal man tilføje de bruger man ønsker skal kunne bruge FUSE til gruppen fuse. Grunden til dette er nødvendigt er at FUSE giver setuid tilladelser, hvilket altid er forbundet med sikkerheds overvejelser. Man skal stole på de bruger, der skal have ret til FUSE. Kommandoen til at tilføje brugeren tjansson til gruppen fuse er:

 
dirac tjansson $ usermod  - a  - G fuse tjansson

Nu er det egentligt sat op, men systemet vil ikke anderkende at man er en del af fuse gruppen før man har logget ud og ind igen.

sshfs
At kunne mounte sit home fra en anden computer eller server kan være utroligt praktisk. Hvis jeg vil arbejde med ?lerne på min server kan jeg bare mounte serverens ?lsystem i folder og bruge min lokale editor eller programmer til at arbejde med ?lerne på serveren. Det bedste er af det hele er at det er lige så nemt som normalt ssh, dataene er krypteret og en hver bruger kan (I fuse gruppen) kan gøre det. Her er et eksempel på hvordan jeg mounter folderen fra min server i mit lokale ?lsystem:

 
tjansson@dirac:~$ mkdir server 
tjansson@dirac:~$ sshfs  - p 60 tjansson@192.168.1.152: server

hvor -p 60 angiver at min sshserver på 192.168.1.152 ligger på port 60 (istedet for de normale 22) og at den skal mounte ?lsystemet i mappen server. Når jeg er færdig med at bruge serveren og vil lukke forbindelsen bruger jeg:

 
tjansson@dirac:~$ fusermount  - u server

encfs
Jeg ønsker at lave en folder som man kun har adgang til, hvis man kender et bestem kodeord. Til dette formål kan man bruge encfs. Først laver jeg to mapper. Den ene krypteret vil være der hvor mine krypterede ?ler bliver gemt. Den anden krypteret-mountpoint vil være der, hvor jeg kan redigere i mine ?ler når jeg har skrevet kodeordet.

 
tjansson@dirac:~$ mkdir krypteret 
tjansson@dirac:~$ mkdir krypteret- mountpoint

Nu skal jeg starte encfs:

 
tjansson@dirac:~$ encfs /home/tjansson/krypteret/ /home/tjansson/krypteret- mountpoint/ 
EncFS Password:

Stierne skal være absolutte for encfs vil acceptere dem. Skriv et password. Nu kan jeg så gå ind i folder krypteret-mountpoint og lave en ?l test.txt og gemme den. Hvis man går ind i folderen krypteret kan man se at der nu er dannet en krypteret ?l:

 
tjansson@dirac:~$ cd krypteret 
tjansson@dirac:~/krypteret/$ ls 
NnteKRFt64oeG1Gp4mTdXDIA

Når man er færdig med at arbejde med ?lerne og ønsker at lukke adgangen til det krypteret, af montere man det bare med:

 
tjansson@dirac:~$ fusermount  - u krypteret- mountpoint 

Only registered users can comment.

  1. Jeg prøvde ut denne kombinasjonen for å se om jeg fikk til backup av data ved hjelp av rsync. Dette fungerte ikke.

    Oppsummering:
    rsync + encfs kun på lokal maskin går ok.
    rsync + sshfs som kobler lokal og annen maskin sammen går ok.
    rsync + encfs + sshfs går ikke.

    Det er siste kombinasjon som jeg synes er mest interessant i sammenheng med sshfs og encfs. Eksempel på feilmeldinger (de er aldri like):
    rsync: writefd_unbuffered failed to write 4 bytes: phase “unknown”
    [sender]: Broken pipe (32)
    rsync: rename
    “/home/berland/tmp/asgeirbackupuncrypt/brabilder/.brasync.2EKyey” ->

    På bittesmå filer (script) så gikk det derimot bra, men ingen jpg-bilder kommer hele gjennom.

Leave a Reply