Hotaru's Notebook

Linux / Windows 加密用户文件夹

Preface

/home 下的用户文件夹可谓是隐私重灾区(Windows 下的 C:\Users\<用户名> 同理)。相比硬盘其他分区里的数据而言,用户文件夹下面会存放各种与用户隐私有关的文件。比如:

解决这个问题的办法就是加密用户文件夹。 本文分两部分内容,分别针对 Linux 和 Windows。

Linux 下加密用户文件夹

先决条件:

  1. 以后再登录该账户时需要提供密码
  2. 该操作需要root权限

其实可以用不要 root 权限的 ecryptfs-setup-private,但为了尽可能提高成功几率,我还是选择了用需要 root 权限的方法。 下文将以 user 用户为例,为其加密home文件夹。以下是具体操作步骤:

  1. 安装 ecryptfs-utils
    apt-get install ecryptfs-utils
    
  2. 创建一个临时用户并将其加入 sudo 用户组
    sudo adduser --ingroup sudo user_temp
    
  3. 登出(Logout)当前用户,在登出前请尽量关闭正在运行的程序
  4. 按下 Ctrl+Alt+F1 进入 tty1,并以 user_temp 的身份登录
  5. 结束所有属于 user 用户的进程,如果结束所有进程后仍然后进程在运行,可以考虑添加 “–signal 9” 参数来强制结束进程
    sudo killall --user user
    
  6. 重命名 user 用户为 user_old,并将现有的用户文件夹移至 /home/user_old
    sudo usermod --home /home/user_old --move-home --login user_old user
    
  7. 查看 user_old 的用户基本信息
    id user_old
    
    输出内容大致如下,把输出的 gid 和 groups 记下来:
    uid=1234(user_old) gid=1234(user_group) groups=1234(user_group),27(sudo),2345(some_group)
    
  8. 添加新的用户名为 user,并加密它的home文件夹
    # --ingroup 参数设置为上面的 gid 后面括号里的值
    sudo adduser --home /home/user --ingroup user_group --encrypt-home user
    # 按下回车后会要求为该用户设置密码以及其他信息,其实只需要提供密码,其余的留空就行。
    
    user 设置附属用户组
    # --groups 参数设置为上面 groups 后面括号里的值,有多个用户组则用 "," 分隔
    usermod --append --groups sudo,some_group user
    
  9. 登录到 user 并挂载加密的文件系统
    sudo --user user --login
    ecryptfs-mount-private
    
  10. 复制旧用户的所有文件到新的用户文件夹里,并修正权限
    sudo cp -R /home/user_old/. ./
    sudo chown -R user:user_group ./
    

然后先在这个账户下日常用几天,如果没问题的话 就可以把原来的账户连同它的文件一起删掉:

sudo userdel --force --remove user_old

# 别忘了删除 temp_user
sudo userdel --force --remove user_temp

使用命令 ecryptfs-unwrap-passphrase 将输出的 passphrase 记下来,密码忘了的话可以用它来解密文件。

至此,Linux 下用户文件夹的加密就算完成了。

Windows 下加密用户文件夹

Windows 下更简单些,点点鼠标就能完成。

  1. 打开目录 C:\Users\
  2. 对着自己的用户文件夹 右键 -> 属性 -> 常规选项卡 -> 高级
  3. 勾选复选框 加密内容以便保护数据
  4. 点击 确定 然后再点击 应用,然后坐等加密完成。 与此同时,系统会通知用户备份密钥,按照提示操作即可。

References

  1. Encrypted home - help.ubuntu.com
  2. HOW-TO encrypt your home directory - ubuntuforums.org

#Linux #Encrypt home #Privacy #Security