Encrypting files and folders with EncFS


© Lead Images © Steve Byland & Mark Dietrich, 123RF.com
Article from Issue 161/2014

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.


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.


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.

Figure 1: One command is all it takes to create and mount an encrypted directory in EncFS.

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).

Figure 2: If you select the default settings, the configuration dialog shows a summary of the parameters used.

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

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Simple Security

    EncFS is an easy and effective CLI application for encrypting files that also allows for customization.

  • Command Line: Encrypting Partitions

    Modern installers offer the option of encryption with just a few clicks, but you might want to take control of the process. We show how to encrypt your partitions safely without sacrificing convenience.

  • SiriKali

    SiriKali encrypts files and directories with just a few mouse clicks, without the inefficiency of fixed-size containers.

  • Encrypting Block Devices

    The recent revelations about NSA spying have sparked renewed interest in data encryption. Encrypting at the file level is quick and easy, but if you're looking for an extra dose of protection, try encrypting the whole block device.

  • Disk Encryption

    Encrypted volumes have long since ceased to be an exception or luxury. Corporate policies and compliance rules often demand encryption for critical data. This article looks at tools for disk encryption on Linux.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More