summaryrefslogtreecommitdiff
path: root/src/Encrypting_Home_Directories_with_EncFS.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Encrypting_Home_Directories_with_EncFS.adoc')
-rw-r--r--src/Encrypting_Home_Directories_with_EncFS.adoc84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/Encrypting_Home_Directories_with_EncFS.adoc b/src/Encrypting_Home_Directories_with_EncFS.adoc
new file mode 100644
index 0000000..a8b8dbb
--- /dev/null
+++ b/src/Encrypting_Home_Directories_with_EncFS.adoc
@@ -0,0 +1,84 @@
+Encrypting Home Directories with EncFS
+======================================
+:author: Aaron Ball
+:email: nullspoon@iohq.net
+
+
+== {doctitle}
+
+Before I go into how to do this, I'd like to take a moment to explain how encfs
+works in slightly simpler terms than are detailed on the
+http://www.arg0.net/encfsintro[encfs introduction page]. Originally, I was
+going to write my own explanation, but the Wikipedia article on this explains
+it so much better than I did (I just erased several paragraphs after reading
+the Wikipedia article).
+
+____
+EncFS is a Free (GPL) FUSE-based cryptographic filesystem that transparently
+encrypts files, using an arbitrary directory as storage for the encrypted
+files.
+____
+
+Two directories are involved in mounting an EncFS filesystem: the source
+directory, and the mountpoint. Each file in the mountpoint has a specific file
+in the source directory that corresponds to it. The file in the mountpoint
+provides the unencrypted view of the one in the source directory. Filenames are
+encrypted in the source directory. Files are encrypted using a volume key,
+which is stored encrypted in the source directory. A password is used to
+decrypt this key."
+
+http://en.wikipedia.org/wiki/Encfs[Original article]
+
+Wow. How was that for an explanation? I love Wikipedia.
+
+Now that that is out of the way, let's get on to business...
+
+To start things off, we have to create our two directories, the source
+directory and the mountpoint directory. Both should be owned by the user using
+the encrypted data.
+
+----
+mkdir /home/.user && chown -R user:user /home/.user
+mkdir /home/user && chown -R user:user /home/user
+----
+
+*.user* is the
+encrypted data. You don't ever write data to this directory. EncFS
+handles this for you. **user** is the decrypted data/the mountpoint. You
+ONLY write data here. When you write data here, it shows up in .user as
+encrypted data.
+
+----
+encfs /home/.user /home/user
+----
+
+This will mount /home/.user at the mountpoint /home/user. Without getting too
+specific, what happens is when data is written to /home/user, the data goes
+through EncFS which encrypts that data before writing it to /home/.user/. When
+data is read from /home/user/, the request goes through EncFS, which grabs the
+encrypted version of the file from /home/.user/ and temporarily decrypts it in
+RAM for your use. Ah the beauty of the seamless Linux mounting paradigm
+(that's para-dig-um, not paradigm).
+
+Since we are encrypting an entire home directory, we need to use a nonempty
+parameter for Fuse since the home directory will always contain something like
+\.bash_history from a command line login, or .local from a GUI login. Here's
+our final command.
+
+----
+encfs -o nonempty /home/.user /home/user
+----
+
+And with that, you have an entirely encrypted home directory.
+
+On a final note, be sure you keep the file located at /home/.user/.encfs6.xml
+backed up. That file contains all the data that EncFS needs to use your
+encrypted data. Without this, retreiving your data will be a lot more
+difficult.
+
+
+Category:Linux
+Category:Encryption
+
+
+// vim: set syntax=asciidoc:

Generated by cgit