我想加密文件夹

我想加密文件夹

我刚刚切换到 Linux(5 小时前)我仍在尝试加密我最重要的文件夹。

对此似乎没有简单的解决办法。

您建议如何加密几个文件夹?

答案1

如果你不想为加密文件创建单独的分区(卷),那么你应该使用加密文件系统

eCryptfs 将加密元数据存储在每个写入文件的标头中,以便可以在主机之间复制加密文件;文件将可以使用正确的密钥解密,并且除了加密文件本身中已有的信息之外,无需跟踪任何其他信息。

安装 eCryptfs:

$ sudo apt install ecryptfs-utils

设置很简单。首先,创建包含加密文件和子目录的“私有”目录。例如:

$ mkdir ~/Documents/private

当此目录未“挂载”时,您可以查看其中的文件内容,但看不到任何有意义的内容,因为所有内容都将被加密。要使用(读取和写入)未加密版本,您应该“挂载”此目录。您可以像这样将此目录挂载到其自身上:

$ sudo mount -t ecryptfs ~/Documents/private ~/Documents/private

由于这是您第一次尝试使用 eCryptfs 挂载此目录,因此您需要回答几个类似这样的问题:

  • 首先,输入您永远不会忘记
  • 密码:aes(默认)
  • 密钥字节:32
  • 明文直通:n(默认)
  • 文件名加密:n(默认)

现在,重要的警告是:

WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
it looks like you have never mounted with this key 
before. This could mean that you have typed your 
passphrase wrong.

Would you like to proceed with the mount (yes/no)? :

由于这是您第一次挂载此目录,因此您将回答yes以便~root/.ecryptfs/sig-cache.txt创建一个名为的新文件,其中将包含密码的“签名”。

Would you like to append sig [xxxxxxxxxxxx] to
[/root/.ecryptfs/sig-cache.txt] 
in order to avoid this warning in the future (yes/no)? : 

也回答yes这个问题,以便文件~root/.ecryptfs/sig-cache.txt会被填充。

稍后,当我们重新挂载该目录时,我们不应该收到此警告,除非我们输入错误的密码

在私有目录中创建一个文件。例如:

$ ls -al > ~/Documents/private/1.txt

注意文件的长度:

$ wc -c ~/Documents/private/1.txt
4935 ...

卸载目录:

$ sudo umount ~/Documents/private

查看卸载~/Documents/private目录中文件的加密版本:

$ less  ~/Documents/private/1.txt

它看起来像一个二进制文件,因为其内容是加密的。

查看文件的长度:

$ wc -c ~/Documents/private/1.txt
16384 ...

它比未加密文件大几千字节,因为它包含一些元数据。这是 eCryptfs 对您的文件系统的全部开销:每个文件将比未加密时大大约 8 到 16 KB。

使用以下命令重新挂载目录:

$ sudo mount -t ecryptfs ~/Documents/private ~/Documents/private \
-o ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_passthrough=no,\
ecryptfs_enable_filename_crypto=no,\
ecryptfs_sig=$(sudo cat ~root/.ecryptfs/sig-cache.txt)

输入正确的密码。如果输入错误的密码,您将收到以下消息:

WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
it looks like you have never mounted with this key 
before. This could mean that you have typed your 
passphrase wrong.

Would you like to proceed with the mount (yes/no)? : 

在这种情况下,请回答no此问题并使用正确的密码重试。

再次检查内容。

$ less ~/Documents/private/1.txt
$ wc -c ~/Documents/private/1.txt
4935 ...

有关详细信息,请参阅man ecryptfs

答案2

我自己没有尝试过,但我为你找到了以下内容

https://itsfoss.com/password-protect-folder-linux/

这确实涵盖了 Ubuntu,所以我希望能够对您有所帮助。

还有一种替代方案是对整个磁盘进行加密,这种加密对于用户来说是透明的,但会阻止在没有代码的情况下从外部读取磁盘。

首先,不清楚为什么需要文件夹锁定。Linux/Ubuntu 中的文件权限允许您将其锁定到特定用户(和管理员 = 超级用户 = sudo),而其他用户则无权访问。如果您的系统上有多个用户,只需右键单击并授予文件夹无权访问的权限就足以保护私人数据,假设其他用户没有管理员访问权限。

欢迎来到 Ubuntu!

答案3

我在 LVM 上有 LUKS1,它加密了整个磁盘,包括/boot,请参阅 https://cryptsetup-team.pages.debian.net/cryptsetup/encrypted-boot.html

相关内容