在 Linux 文件系统中为文件加密,其实存在多种成熟可靠的解决方案,关键在于你需要保护的是单个文件、某个目录,还是整块磁盘。下面就来梳理几种主流做法,从简单到全面,各有侧重,帮助你根据实际需求做出最佳选择。

1. 使用 eCryptfs——面向目录的加密方案
eCryptfs 是一个运行在用户空间的文件系统,专门用于加密目录和文件。它的优势在于无需预先划分独立分区,能够针对特定目录实现透明加密,对日常使用影响极小。
安装过程非常简单:
sudo apt-get install ecryptfs-utils
创建加密目录并进行挂载:
mkdir ~/encrypted
mount -t ecryptfs ~/encrypted ~/encrypted
挂载期间会弹出交互式提示,你需要选择加密算法(建议使用 AES)、设定加密密钥,并指定加密模式(CBC 最为常见)。之后,所有写入此目录的文件都会自动完成加密,卸载后他人将无法直接读取其内容。
重新挂载已加密的目录时,只需再次运行上述 mount 命令,系统会提示你输入之前设置的相同密钥。
2. 使用 EncFS——比 eCryptfs 更轻量化的选择
如果你觉得 eCryptfs 的配置略显繁琐,EncFS 提供了更加友好的体验。它同样基于用户空间文件系统,但在设计上更侧重易用性和简洁性。
sudo apt-get install encfs
创建加密目录和解密挂载点:
mkdir ~/encrypted
mkdir ~/decrypted
encfs ~/encrypted ~/decrypted
首次执行 encfs 时,系统会要求你设置加密密码与算法(同样推荐使用 AES)。此后,所有存入 ~/decrypted 的文件都会自动加密到底层 ~/encrypted 目录中。卸除时只需执行 fusermount -u ~/decrypted 即可。
3. 使用 LUKS——整块磁盘或分区的加密标准
若你需要保护整个分区甚至整块磁盘,LUKS(Linux Unified Key Setup)是 Linux 生态下的首选方案。它工作在块设备层,对上层文件系统完全透明,安全性极高,广泛应用于生产环境。
首先安装必要工具:
sudo apt-get install cryptsetup
加密目标分区(注意将 /dev/sdX 替换为实际设备名):
sudo cryptsetup luksFormat /dev/sdX
这一步会清空分区内所有数据,并提示你设置一个强密码。完成加密后打开该分区:
sudo cryptsetup open /dev/sdX my_encrypted_partition
随后像普通设备一样进行格式化与挂载:
sudo mkfs.ext4 /dev/mapper/my_encrypted_partition
sudo mount /dev/mapper/my_encrypted_partition /mnt/encrypted
每次系统重启后,都需要重新执行 open 和 mount 操作才能访问数据。LUKS 支持多密钥、密码短语与密钥文件组合,灵活性非常出色。
4. 使用 GnuPG——单文件加密的经典工具
如果你仅仅需要加密一两个文件,完全没必要启用整个加密文件系统。GnuPG(GNU Privacy Guard)是命令行环境下处理单个文件加密与解密的利器,轻巧高效。
sudo apt-get install gpg
加密文件时,可以指定接收者的公钥或使用对称加密:
gpg --output encrypted_file.gpg --encrypt --recipient your_email@example.com file_to_encrypt
解密时:
gpg --output decrypted_file --decrypt encrypted_file.gpg
GnuPG 也支持对称加密(只需加上 --symmetric 参数),非常适合仅由你自己使用的场景。
5. 使用 VeraCrypt——跨平台且功能强大的容器加密
VeraCrypt 源自 TrueCrypt,支持加密整个磁盘、分区或文件容器。它最大的特色是兼容 Windows、macOS 以及 Linux,非常适合需要跨平台共享加密数据的用户。
安装方式:从 VeraCrypt 官方网站下载对应 Linux 发行版的安装包,或使用系统自带的包管理器(部分发行版已收录)。
创建加密卷(文件容器):
veracrypt --create /path/to/encrypted_volume
按照向导设置加密算法、哈希算法以及密码。创建完成后进行挂载:
veracrypt /path/to/encrypted_volume /path/to/mount_point
挂载后即可像使用普通目录一样读取和写入文件,卸载时只需执行 veracrypt -d。
选择哪种方法,核心在于你的使用场景:日常保护用户目录,eCryptfs 或 EncFS 就足以胜任;整机加密或敏感数据分区,LUKS 是工业级标准;偶尔加密单个文件,GnuPG 轻巧高效;需要跨平台共享加密卷,VeraCrypt 最为合适。理解了这些差异,你在实际部署时就能轻松做出决策,不再纠结。
