密码保护目录及其内容而无需创建新文件的最简单方法?

Vas*_*ass 25 command-line password directory encryption

我想密码保护或加密一个目录及其中的所有文件(对于它下面的整个目录树)。我不想打扰整个主目录,我想要一个包含一些文件和文件夹的特定目录。我希望能够加密目录或使用密码解密它。命令行最好用。我不想创建一个新文件作为加密版本,然后删除以前的非加密版本。

Gil*_*il' 26

使用encfs(在大多数发行版中作为包提供)。建立:

mkdir ~/.encrypted ~/encrypted
encfs ~/.encrypted ~/encrypted
# enter a passphrase
mv existing-directory ~/encrypted
Run Code Online (Sandbox Code Playgroud)

encfs设置加密文件系统的初始调用。在那之后,您写入的每个文件~/encrypted都不会直接存储在磁盘上,而是加密并且加密的数据存储在~/.encrypted. 该encfs命令使守护进程保持运行状态,该守护进程处理加密(以及从 下读取文件时的解密~/encrypted)。

换句话说,对于 下的文件~/encrypted,读取和写入等操作不会直接转换为从磁盘读取或写入。它们由encfs进程执行,该进程对数据进行加密和解密并使用~/.encrypted目录来存储密文。

当您暂时处理完文件后,请卸载文件系统,以便在您再次输入密码之前无法访问数据:

fusermount -u ~/encrypted
Run Code Online (Sandbox Code Playgroud)

在那之后,~/encrypted将再次成为一个空目录。

当您以后想要再次处理这些文件时,请挂载加密的文件系统:

encfs ~/.encrypted ~/encrypted
# enter your passphrase
Run Code Online (Sandbox Code Playgroud)

这再次使~/.encrypted目录下的加密文件可访问~/encrypted

您可以随意更改挂载点~/encrypted:(encfs ~/.encrypted /somewhere/else但一次只能挂载一次加密目录)。您可以将密文(但不能在安装时)复制或移动到不同的位置,甚至是不同的机器;处理文件所需要做的就是将密文的位置作为第一个参数传递给encfs,并将空目录的位置作为第二个参数传递。