我刚刚切换到 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