Ubuntu ZFS 加密 Home 目录
警告
本文最后更新于 2020-09-11,文中内容可能已过时。
前言
Ubuntu 20.04 的安装镜像支持 ZFS 文件系统:
本文是 安装后 加密 ZFS Home 目录的备忘教程。 另外有 安装前 加密 ZFS Root 文件系统的备忘教程。链接:《Ubuntu ZFS 原生全盘加密》
步骤
1、安装时创建一个随意的临时账号,或者安装完成后,新建一个临时管理员用户,暂且把这个账号叫做:tempuser
,并把它设置为自动登录,此账号必须为管理员账号。
后面的步骤均在此临时账号下进行。
2、注销或重启后,登录 tempuser
账号,重新创建一个长期使用的用户,比如我的账号叫:eallion
3、查看 ZFS 数据集
sudo zfs list -r rpool
记录下你要用到的用户名的数据集名称,每个人的快照名字都不一样。
比如我的:eallion_c1doe6
返回值如图所示:
4、取消挂载新用户 eallion
的数据集
sudo zfs set mountpoint=none rpool/USERDATA/<yourdatasetname>
例如:
sudo zfs set mountpoint=none rpool/USERDATA/eallion_c1doe6
如果这一步遇到错误,如:target is busy,需要自行排错。比如我遇到的就是挂载了其他硬盘,导致不能取消数据集的挂载。
5、给新用户 eallion
创建一个新的加密数据集
sudo zfs create -o encryption=on -o keyformat=passphrase rpool/USERDATA/<yourusername>_encrypt
例如:
sudo zfs create -o encryption=on -o keyformat=passphrase rpool/USERDATA/eallion_encrypt
输入密码短语,回车。(一定要记住此密码。)
6、挂载这个加密数据集到新用户目录
sudo zfs set mountpoint=/home/<yourusername> rpool/USERDATA/<yourusername>_encrypt
例如:
sudo zfs set mountpoint=/home/eallion rpool/USERDATA/eallion_encrypt
7、检测一下是否配置正确(如果没有返回什么,就代表配置成功了)
sudo mount -a
8、检查一下加密是否成功(加密数据卷应该会有密码方式,如:aes-256-gcm
)
sudo zfs list -r rpool -o name,encryption
如图:
我用的是全盘加密,所以全部返回 aes-256-gcm
,
如果只加密了 Home 目录,则其他目录返回的是 None
。
9、让加密目录用上 ZFS 的自动快照功能,Grub 引导项中也能选择快照历史恢复系统。
sudo zfs set com.ubuntu.zsys:bootfs-datasets=rpool/ROOT/<nameofdataset> rpool/USERDATA/<yourusername>_encrypt
例如:(注意:你的数据集不一定叫 ubuntu_rroyp0
,通过第 3
步可以查看。)
sudo zfs set com.ubuntu.zsys:bootfs-datasets=rpool/ROOT/ubuntu_rroyp0 rpool/USERDATA/eallion_encrypt
10、请确保 Home 目录的权限
sudo chown <yourusername>:<yourusername> /home/<yourusername>
例如:
sudo chown -R eallion:eallion /home/eallion
11、安装 ecryptfs-utils
加密交换空间 Swap
sudo apt install ecryptfs-utils
sudo ecryptfs-setup-swap
此时出现的一些错误提示例如 swapon: cannot open /dev/mapper/cryptswap1: No such file or device
可忽略。
12、查看一下是否成功
cat /etc/fstab
cat /etc/crypttab
PS、如果有多余的用户目录数据集占用空间,比如使用一段时间后才想起来想加密 Home 目录,老的数据集可以通过命令销毁,不过一定要记得备份重要数据。
sudo zfs destroy eallion1_123abc
Reference: https://medium.com/@steinarlbergmyrvang/ubuntu-20-04-with-encrypted-home-f5ce490333cc
相关文章
- 在 Ubuntu 上安装 Discourse 开发环境
- SpringBoot实战:整合Swagger3实现在线Api文档
- RabbitMQ:基础概述
- 【C语言进阶】使用memcpy你需要注意的一个问题
- MyBatis详解(二)
- 新华三防疫绿码通解决方案
- 数字城市运营中心方案
- 新型智慧城市-新型基础设施建设综合方案
- 商业银行企业级IT架构规划
- 智慧医院解决方案
- 智能制造整体解决方案
- 中国数字化转型与创新评选(2018-2021)四年对标洞察报告
- 新时代数字政府建设与发展若干思考
- 政府大数据资源中心建设思路与方案
- 云原生架构安全白皮书(2021年)
- 银行大厦智能化系统深化设计方案
- 密码算法发展及密码测评要求解读
- 数字中台技术白皮书
- [javaSE] 注解-自定义注解
- [javaSE] 注解-JDK中的注解