我想用密码保护或加密目录及其中的所有文件(针对其下的整个目录树)。我不想打扰整个主目录,我想要一个包含一些文件和文件夹的特定目录。我希望能够使用密码对目录进行加密或解密。命令行将是最好用的。我不想创建一个新文件作为加密版本,然后删除以前的非加密版本。
我想用密码保护或加密目录及其中的所有文件(针对其下的整个目录树)。我不想打扰整个主目录,我想要一个包含一些文件和文件夹的特定目录。我希望能够使用密码对目录进行加密或解密。命令行将是最好用的。我不想创建一个新文件作为加密版本,然后删除以前的非加密版本。
Answers:
使用encfs(在大多数发行版中作为软件包提供)。建立:
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
并将空目录的位置作为第二个参数。
~/.encrypted
包含密文。您无需访问即可访问它encfs
,但在那里只会看到加密的数据。
我不想创建一个新文件作为加密版本,然后删除以前的非加密版本
但这正是您所描述的方案。...“能够加密目录或将其解密”
我怀疑您正在寻找的解决方案是加密的FUSE或类似的产品。文件系统存储在一个加密文件中,并且在挂载(使用密码)时,可以通过VFS层进行透明访问。