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

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

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

答案1

使用环境文件系统(在大多数发行版上以软件包形式提供)。建立:

mkdir ~/.encrypted ~/encrypted
encfs ~/.encrypted ~/encrypted
# enter a passphrase
mv existing-directory ~/encrypted

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

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

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

fusermount -u ~/encrypted

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

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

encfs ~/.encrypted ~/encrypted
# enter your passphrase

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

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

答案2

我不想创建一个新文件作为加密版本,然后删除以前的非加密版本

但这正是您所描述的场景......“能够加密目录或解密它”

我怀疑您正在寻找的解决方案是加密的 FUSE 或相似的。文件系统存储在加密文件中,安装时(使用密码)可以通过 VFS 层进行透明访问。

相关内容