FUSE, sshfs og encfs

xterm

Dette er en artikel fra mine linux noter, som jeg også har lagt op på min hjemmeside, men i erkendelse af der nok er flest der læser den hvis lægger den op på en side, som linuxin, så får i den også her. Jeg håber at i kan bruge det - jeg er selv meget glad for sshfs.

FUSE er Filsesystem in Userpace, altså muligheden for at lave et et filsystem som normal bruger uden at bruge administrative rettigheder. På denne måde kan man lave sine egne filsystemer og mounte dem et sted i sit home folder. Her kan man så retmæssig tænke - det lyder fint nok, men hvad skal man bruger det til? Svaret er at man på denne måde f.eks. kan mounte et filsystem 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 flere mulighed med FUSE - se http://fuse.sourceforge.net/wiki/index.php/FileSys...

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 filen filen/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 filerne på min server kan jeg bare mounte serverens filsystem i folder og bruge min lokale editor eller programmer til at arbejde med filerne 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 filsystem:

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 filsystemet 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 filer bliver gemt. Den anden krypteret-mountpoint vil være der, hvor jeg kan redigere i mine filer 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 fil test.txt og gemme den. Hvis man går ind i folderen krypteret kan man se at der nu er dannet en krypteret fil:

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

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

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