有没有办法将这个文件夹锁定,以便它受到密码保护/加密?
事实上,是否可能对任何单独的文件夹进行密码保护?
警告:最近有报道称CryptKeeper存在通用密码漏洞,可能会使您的数据处于潜在风险之中。此问题在Ubuntu中可能尚未得到解决,使用此解决方案需自担风险。
相关漏洞信息链接:
上游漏洞:https://github.com/tomm/cryptkeeper/issues/23
Debian漏洞:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=852751
sudo apt-get install cryptkeeper
安装完成后,前往应用程序 -> 系统工具 -> Cryptkeeper。
Cryptkeeper 将自动附加到顶部面板。
文件夹将被创建并准备好供使用。
要访问所有加密文件夹,请在面板上点击Cryptkeeper小程序,并选择每个文件夹。
在访问之前,请输入密码以进行挂载。
要删除文件夹或更改密码,请在面板小程序中右键单击文件夹。
加密私人目录方法.
在Ubuntu软件中心搜索并安装'ecryptfs-utils':
ecryptfs-setup-private
如果您想限制其他用户对文件夹的访问,您有两种选择:
加密或创建一个压缩的受密码保护的文件存档。当您需要确保没有人会在不知道密码的情况下查看您的文件时,这种方法(Cryptkeeper)非常适合。
使用计算机文件夹/文件权限来拒绝其他用户对您的文件夹的访问。
第一种方法确保结果在不知道密码的情况下无法被任何用户打开。
第二种方法只会更改文件/文件夹的权限,以便没有权限的用户无法打开它。文件夹仍然存在,可以被系统中具有sudo
权限的任何用户或使用LiveCD并读取分区的用户访问。此方法实施起来也更简单,并且不需要每次打开/挂载加密的文件夹/存档时输入密码。
使用chmod
快速而简便地更改文件或文件夹的权限。
打开终端并导航到您的文件夹所在的位置,假设文件夹名称为foo
,并且我们当前位于该文件夹所在的位置。
chmod 700 foo
将使foo
仅对您可见,它并非加密(这也是可能的),但只有您的用户(或具有sudo特权的用户)可以读取或打开该文件/文件夹。
您还可以通过右键单击文件或文件夹并手动更改其权限来以图形方式执行此操作。在下面的示例中,作为所有者的您拥有所有权限,并禁止任何其他组或用户访问、读取或修改该文件/文件夹。
Understanding and Using File Permissions
维基页面。chmod 700 <folder_name>
是相同的。 - Bruno Pereira最后更新:2012年8月4日
你可以试试Vault,这是一个由 ubuntu-gr 成员(希腊本地社区)最新完成的项目。
PPA:
sudo add-apt-repository ppa:vault/ppa
sudo apt-get update
sudo apt-get install vault
$ apt-cache show encfs
Package: encfs
[...]
Description-en: encrypted virtual filesystem
EncFS integrates file system encryption into the Unix(TM) file system.
Encrypted data is stored within the native file system, thus no
fixed-size loopback image is required.
.
EncFS uses the FUSE kernel driver and library as a backend.
Homepage: http://www.arg0.net/encfs
你可以使用CryFS:
cryfs basedir mountdir
它在KDE Vaults中默认使用,并且如果您通过Dropbox、Freefilesync、rsync或类似软件同步加密内容,那么它尤其有趣,因为它将数据保存在小的加密块中,而更改一个小文件只会导致重新上传少量数据。
cryfs
,因为它不支持(标准的Unix)硬链接。 - arielf这个问题的最佳答案描述了如何在非加密安装后使用fscrypt
加密您的主目录(安装程序有一个选项可以加密主目录)
eCryptfs手动设置
这个答案描述了Ubuntu的辅助工具(例如ecryptfs-setup-private
),但是通过自己挂载,你可以获得更多控制权(例如分离不同的挂载目录)和理解。
eCryptfs 已经是Linux内核的一部分,并且在Ubuntu上默认启用了CONFIG_ECRYPT_FS=y
,所以你只需要基本地挂载它。作为内核的一部分通常也是质量和稳定性的积极指标。
我有以下的辅助工具:
export ECRYPTFS_DIR="$HOME/ecryptfs"
export ECRYPTFS_DATA_DIR="$HOME/.ecryptfs-data"
ecry() (
# Mount ecryptfs.
if ! mountpoint -q "$ECRYPTFS_DIR"; then
sudo mount -t ecryptfs \
-o key=passphrase,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=yes \
"$ECRYPTFS_DATA_DIR" \
"$ECRYPTFS_DIR"
fi
)
ecryu() (
# Unmount ecryptfs.
sudo umount "$ECRYPTFS_DIR"
)
使用方法如下。
首先挂载加密目录:
ecry
现在将要询问您的密码短语:
Passphrase:
假设我们不明智地选择了:
asdf
Filename Encryption Key (FNEK) Signature [87d04721f6b4fff1]:
87d04721f6b4fff1
是从我们的asdf
密码派生出的一种哈希类型。现在您可以按下回车键,它会显示:
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=87d04721f6b4fff1
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=87d04721f6b4fff1
Mounted eCryptfs
echo AAAA > ~/ecryptfs/aaaa
echo BBBB > ~/ecryptfs/bbbb
dd if=/dev/zero bs=1k count=1k > ~/ecryptfs/zzzz
ecry
ls -l ~/ecryptfs
~/.ecryptfs-dat
目录中。ls -lh ~/.ecryptfs-data
-rw-rw-r-- 1 ciro ciro 12K Nov 11 17:15 ECRYPTFS_FNEK_ENCRYPTED.FWa5o2QVxfHzwEQ-GALjie5YM3J8aETCQqcZB.pJ2KyM4SRZWVvHGnAYi---
-rw-rw-r-- 1 ciro ciro 12K Nov 11 17:15 ECRYPTFS_FNEK_ENCRYPTED.FWa5o2QVxfHzwEQ-GALjie5YM3J8aETCQqcZMnVJY0WbH6bqRaee1cD5xU--
-rw-rw-r-- 1 ciro ciro 1.1M Nov 11 17:15 ECRYPTFS_FNEK_ENCRYPTED.FWa5o2QVxfHzwEQ-GALjie5YM3J8aETCQqcZf.vz0tLUzh41PwVFAnHc5k--
grep aaaa ~/.ecryptfs-data/*
grep AAAA ~/.ecryptfs-data/*
这里没有任何匹配结果,所以很可能是加密的。
关于这些加密文件的存储方式很酷的一点是,你可以通过将它们复制到一个未加密的介质上(使用rsync
),在任何地方轻松备份加密文件,并且只会复制过时的文件。在这种情况下,甚至不需要先输入密码!
然而不太酷的一点是,如果攻击者试图证明你拥有某个已知信息的片段,他们可能通过比较文件大小和目录结构布局如Giles所提到的来实现。
现在让我们重新挂载:
ecry
asdfqwer
现在将打印:
Filename Encryption Key (FNEK) Signature [c55c6f13e73332d3]:
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=c55c6f13e73332d3
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=c55c6f13e73332d3
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)? :
asdfqwer
的FNEK与正确的asdf
密码不同:c55c6f13e73332d3
。Would you like to append sig [c55c6f13e73332d3] to
[/root/.ecryptfs/sig-cache.txt]
in order to avoid this warning in the future (yes/no)? :
yes
,就会像承诺的那样将FNEK添加到/root/.ecryptfs/sig-cache.txt
中。暂时先说不。我们可以检查一下那个文件里面包含了什么内容:sudo cat /root/.ecryptfs/sig-cache.txt
目前它只包含了 asdf
FNEK:
87d04721f6b4fff1
所以我们理解这只是已知良好密码的白名单。
现在让我们看看输入错误密码后会得到什么:
ls -l ~/ecryptfs
Filename Encryption Key (FNEK) Signature [87d04721f6b4fff1]:
-o ecryptfs_fnek_sig=
grep ecryptfs /proc/mounts
/home/ciro/.ecryptfs-data /home/ciro/ecryptfs ecryptfs rw,relatime,ecryptfs_fnek_sig=d066f6dcf72ad65a,ecryptfs_sig=d066f6dcf72ad65a,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs 0 0
https://wiki.archlinux.org/index.php/EncFS#Comparison_to_eCryptFS
eCryptFS是在内核空间实现的,因此配置起来稍微复杂一些。您需要记住各种加密选项(使用的密码算法、密钥类型等)。而EncFS则不同,因为它将加密元数据信息存储在每个目录的配置文件(.encfs6.xml)中。所以您不需要记住任何东西(除了口令)。
两者的性能取决于磁盘活动的类型。虽然eCryptFS在某些情况下可能更快,因为上下文切换(内核和用户空间之间)的开销较小,但EncFS在其他情况下具有优势,因为加密元数据是集中存储的,而不是存储在各个文件头中。EncFS项目提供了更多信息和基准测试示例。
安装时进行全盘加密(除了/boot
分区)
lsblk
sda 8:0 0 1T 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 731M 0 part /boot
└─sda6 8:6 0 1022.8G 0 part
└─sda6_crypt 253:0 0 1022.8G 0 crypt
├─vgubuntu-root 253:1 0 1021.8G 0 lvm /
└─vgubuntu-swap_1 253:2 0 976M 0 lvm [SWAP]
看起来,位于/boot
下的第二阶段引导加载程序本身并没有加密,但根目录和交换空间是加密的。
正如在https://help.ubuntu.com/community/Full_Disk_Encryption_Howto_2019中提到的,这会使您面临风险,即攻击者可以在未经您知情的情况下篡改引导文件夹,并利用此后提取您的解密密钥,如果您继续使用该计算机。
安装时进行全盘加密(包括/boot
)
截至20.04版本,似乎还没有自动化的方法,但希望能够尽快实现,以下是一些手动指南:
HandleLidSwitch=hibernate
sudo systemctl hibernate
apt install gocryptfs
初始化基础目录(一次)
gocryptfs -init basedir
gocryptfs basedir mountdir
gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"
和unity --replace
。 - Jakobcom.canonical.Unity.Panel
不存在,并且systray-whitelist
是所有可用的Unity.
模式中无效的键 :( - RedactedProfile