Encrypting files and folders with EncFS
Protected

The EncFS virtual filesystem reduces the configuration overhead for data encryption on Linux.
Encryption is an important precaution that is nonetheless neglected by many users. EncFS offers a simple yet secure method for protecting data against unauthorized access with minimal configuration overhead.
Encryption is like backup: Everyone knows it is important, but any excuse will do not to set it up (yet). EncFS puts an end to excuses: With just one command, a non-root user can set up a directory that stores transparently encrypted data.
EncFS, which is released under the GPL, has been around for 10 years, and it is available for download from the repositories of all the popular distributions. As the name suggests, EncFS [1] is a filesystem – but not in the traditional sense that ext4 or XFS, are filesystems.
To be more precise, EncFS is a virtual encrypted filesystem that protects files and folders from unauthorized access. As a virtual filesystem, EncFS resides on an existing filesystem and relies on the FUSE (Filesystem in Userspace) kernel module [2] as a user process. These properties offer a number of advantages over other filesystems but also entail some disadvantages.
Benefits
Because EncFS relies on other filesystems to store data, it simply uses whatever you have in place, with no need to configure a particular partition or container for encrypted data [3]. As a result, no space is wasted. EncFS requires only a few bytes for metadata and encryption purposes.
EncFS does not care where data resides. Supported filesystems include ext3/4, NFS, and Samba, so you can also use EncFS in connection with cloud services such as Dropbox, if you wish. And, a backup of EncFS-encrypted data works without additional configuration or special backup software. Because the encrypted data is just a file or a directory on the system, it can be treated just like its unencrypted counterpart in your backup. At the same time, the backed up data is protected against unauthorized access.
From the developer's perspective, a filesystem in userspace is also interesting, in that it is easier to set up than a kernel module, for example.
Additionally, if errors occur in the software, a crash does not take down the whole system. (See the "eCryptfs Alternative" box for a kernel space implementation.)
eCryptfs Alternative
eCryptfs [4] provides a very similar method to EncFS for encrypting data. The main difference is its implementation in kernel space: eCryptfs thus does not rely on FUSE and potentially works a little faster. Of course, this impairs portability; whereas EncFS is available for Mac OS X and Windows, eCryptfs is currently mainly limited to Linux.
Setting up eCryptfs is just as easy as setting up EncFS on most distributions. Make sure the ecryptfs
kernel module is loaded and the ecryptfs-utils
package is installed. To set up an encrypted folder, use the command-line program ecryptfs-setup-private
. You can also encrypt your complete home directory if needed with eCryptfs.
Additional utilities that convert existing unencrypted directories make it easy to get started with eCryptfs. Users of Ubuntu can stipulate during the install whether to encrypt their home directories fully with eCryptfs.
Drawbacks
The many benefits of EncFS are offset by some disadvantages, however. For one thing, a filesystem in userspace is usually slower than a kernel module.
Additionally, EncFS does not encrypt the file metadata, so everyone who has access can see the metadata. The corresponding data includes, for example, the number of encrypted files and directories, the associated file permissions, the size of the files, and the approximate length of the file or directory name.
Encrypted Folders
To create a folder named Data-Safe
in your home directory, in which you can save arbitrary files and directories, just type the command:
$ encfs ~/.Data-Safe ~/Data-Safe
Any data you store in ~/Data-Safe
is encrypted transparently by the software and deposited in a hidden directory named .Data-Safe
,
EncFS runs in interactive mode when creating the encrypted directory (Figure 1). Depending on your personal security needs, you can choose at this point between standard mode, paranoia mode, or expert configuration mode.

In expert mode, you can configure many additional settings, such as the algorithm to be used or the key and block length. If you select the default configuration, EncFS outputs the selected settings and prompts you for a password for the newly created directory (see Figure 2).

Caution: Choosing paranoia mode or enabling certain settings in expert configuration mode means you can no longer use hard links. As a result, applications that use hard links might not work properly. One example of this is the console-based mail client, Mutt.
EncFS does not just encrypt the data but also renames files and directories so that the resulting cryptic names allow no conclusions on the content of the files:
$ ls ~/.Data-Safe/ iyZS5h8HEbjyUjRGJqTHxBOrsAoE9,o8nOKSayDFyagPoEBl
To mount the data safe, you use the same command as for setting it up initially. To unmount it again, type:
$ fusermount -u ~/Data-Safe/
The encfsctl
command-line program lets you handle administrative tasks. Among other things, you can output information about an EncFS-encrypted folder or change the password. Such a password change does not mean EncFS encrypts all the data again in a resource-intensive process: EncFS does not use the password as the key during the initial setup. Instead, it generates a volume key. You only encrypt the volume key by entering your password. EncFS encrypts all the other data with the volume key, which does not change even with a new password.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Direct Download
Read full article as PDF:
Price $2.95
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Find SysAdmin Jobs
News
-
OpenMandriva Lx 23.03 Rolling Release is Now Available
OpenMandriva "ROME" is the latest point update for the rolling release Linux distribution and offers the latest updates for a number of important applications and tools.
-
CarbonOS: A New Linux Distro with a Focus on User Experience
CarbonOS is a brand new, built-from-scratch Linux distribution that uses the Gnome desktop and has a special feature that makes it appealing to all types of users.
-
Kubuntu Focus Announces XE Gen 2 Linux Laptop
Another Kubuntu-based laptop has arrived to be your next ultra-portable powerhouse with a Linux heart.
-
MNT Seeks Financial Backing for New Seven-Inch Linux Laptop
MNT Pocket Reform is a tiny laptop that is modular, upgradable, recyclable, reusable, and ships with Debian Linux.
-
Ubuntu Flatpak Remix Adds Flatpak Support Preinstalled
If you're looking for a version of Ubuntu that includes Flatpak support out of the box, there's one clear option.
-
Gnome 44 Release Candidate Now Available
The Gnome 44 release candidate has officially arrived and adds a few changes into the mix.
-
Flathub Vying to Become the Standard Linux App Store
If the Flathub team has any say in the matter, their product will become the default tool for installing Linux apps in 2023.
-
Debian 12 to Ship with KDE Plasma 5.27
The Debian development team has shifted to the latest version of KDE for their testing branch.
-
Planet Computers Launches ARM-based Linux Desktop PCs
The firm that originally released a line of mobile keyboards has taken a different direction and has developed a new line of out-of-the-box mini Linux desktop computers.
-
Ubuntu No Longer Shipping with Flatpak
In a move that probably won’t come as a shock to many, Ubuntu and all of its official spins will no longer ship with Flatpak installed.