注销后仍可访问加密的主文件夹


13

我有一个带有加密主文件夹的帐户,如果自系统上次启动以来,该用户尚未登录,则无法访问该用户的主文件夹中的纯文本数据。这是我所期望的,因为实际上在没有输入密码的情况下访问用户的主文件夹实际上不可行。

但是,我发现当具有加密主文件夹的用户登录然后注销时,其他用户仍然可以访问其主文件夹中的纯文本数据。当然,需要足够的访问权限。

w不会列出用户,并且的输出sudo pgrep -u <username>为空,表示该用户没有任何正在运行的进程。

这种行为的原因是什么?为什么在用户注销后不只是锁定用户的主文件夹?


您能否提供grep -Fe ecryptfs /var/log/auth.log用户注销前后的输出?
David Foerster

该命令产生以下输出:pastebin.com/jZXdahbJ据Emacs称,只有包含字符串“ ecryptfs”的行是我运行该命令时产生的行。
UTF-8

结果与预期的一样,只是Emacs已经向我显示的内容:pastebin.com/VtV7iCDg
UTF-8

好。值得一看。
David Foerster

我也注意到了持久性实时系统中的这个错误(试图创建另一个具有加密主目录的用户)。
sudodus

Answers:


6

已知错误

如果我正确理解,这是一个已知的错误。

看到这个链接:wiki.archlinux.org/index.php/ECryptfs

向下滚动到粉红色段落

警告:不幸的是,自动卸载很容易被systemd破坏,并且存在针对它的错误...

解决方法

因为它是现在,你最好关机重新启动,以消除痕迹(这是足够的注销)。


“注销将泄漏用户之间的信息”是什么意思?您是否意味着发生任何事情,除了具有足够特权的其他用户可以访问第一个用户的主目录中的纯文本数据之外?(当然,这在注销之前就已经可以了。)
UTF-8

1
试图更好地解释:“仅注销是不够的”。(注销不会删除已被加密主目录用户使用的文件的纯文本实例。因此,信息可能会从该用户泄露给另一个用户,该用户至少在该用户具有sudo特权的情况下才能登录。但是,如果您关闭或重新启动,文件的明文实例将消失
sudodus

3

我无法测试或确认这一点,但是假设您正在使用ecryptfs(这是Ubuntu在安装过程中提供的IIRC),则加密的数据存储在一个隐藏文件夹中,/home/.encryptfs/$USERecryptfs在您登录时使用驱动程序安装到实际主文件夹的位置。在。

因此,最有可能的是,当您注销时,它无法自动卸载该目录,因此仍可访问文件。这可能是由于...

  • 错误的配置(也许应该配置为在注销时卸载但不是)
  • 意外的注销类型(有时这些解决方案适用于DM登录/注销,但在其他情况下效果不佳)
  • 如果卸载是由注销脚本处理的(不一定是这种情况),则unmount命令之前的操作可能会失败并导致脚本提前退出。

可以帮助您检查这一点的一件事是sudo mount | grep home,在登录之前,登录之后和注销之后运行,以查看是否home已挂载任何相关内容。您也可以查找/etc/fstab相关条目。最后,还有一些配置/home/.ecryptfs/$USER/.ecryptfs/与自动安装/卸载有关。

有关有用的信息ecryptfs中可以找到这个答案,并在不断有帮助ArchWiki


我尝试了您告诉我的信息:pastebin.com/DrmEXQPV我不会以任何奇怪的方式登出,而是以标准GUI方式登出。如您所见,FS仍已安装。您提到的配置文件为空。/etc/fstab除了1个条目,我唯一的数据分区应该挂载到我的条目上,/还有1个条目,与某些大学相关的网络资源有关,我什么都没有。我应该尝试以其他任何方式注销吗?如果是这样:如何?
UTF-

以不同的方式注销注释有点猜测-桌面管理员在登录和注销之上增加了很多内容,这使概念变得复杂,并使得很难判断触发了哪些事件。我在想,因为可能有某些脚本或事件没有运行。根据其他答案,这不是那种问题,而是与ecryptfs自身有关。但是,在此注意事项上,您是使用ssh文本终端还是通过文本终端登录?如果找到放置脚本的脚本,可能会在注销时卸载该脚本。
krs013 '17

3

编辑/etc/systemd/logind.conf并设定KillUserProcesses=yes

请注意,这会破坏后台程序,screentmux,等等。

这个问题在这里更详细地讨论。我发现没有必要定义新的systemd服务(或更准确地说,不是所需的行为,因为它是作为关闭挂钩调用的,而不是在用户会话终止时调用的)。

/unix/251902/ecryptfs-auto-umount-does-not-work


我将检查您的方法是否适用于具有第二个用户的持久性实时系统,该系统已加密主目录。
sudodus

很抱歉,但我不能让在现场持续这种系统的工作方法与第二用户,这已加密的主。(我尚未在已安装的系统中测试过您的解决方案,我将其留给询问原始问题的@ UTF-8。)
sudodus

我对在自己的计算机上修复此问题不感兴趣。我是反正使用它的唯一一个人,但是我想使用2个带有加密主文件夹的帐户,并且没人知道其中一个帐户的密码。我对为什么默认情况下不自动卸载加密卷感兴趣。难道不是只是检查在用户上下文中运行的活动后台进程,如果没有则将其卸载吗?
UTF-

@ UTF-8,我同意你的看法,它应该像您希望的那样工作。如果我正确理解,这是一个已知的错误。请参阅此链接wiki.archlinux.org/index.php/ECryptfs。向下滚动到粉红色的段落“警告:不幸的是,自动卸载很容易因systemd中断并提交错误”。-现在,最好关闭或重新启动以删除跟踪(注销将泄露用户之间的信息。)
sudodus

@ UTF-8这是systemd /会话交互中的一个错误,至少起码是微不足道的(我很舒服地将它挂在systemd上)-/etc/systemd/logind.conf更改在16.04上对我有效(已测试了三个不同的用户) ,不同的会话等))
quadruplebucky

3

我已经研究了很长时间了,例如,用户注销后仍保持未加密文件系统的状态。

我使用“ ecryptfs-migrate-home -u用户”创建安装。按照说明进行操作,除了注销时没有自动卸载外,所有工作均有效。

我将/etc/pam.d/中的配置文件与pam_ecryptfs文档进行了比较,发现了一些区别。ecryptfs位于pam.d配置文件中的4个中,而pam_ecryptfs文档表明仅2个文件需要/应该/支持ecryptfs,例如,

   /etc/pam.d/common-auth:
              auth    required        pam_ecryptfs.so unwrap
   /etc/pam.d/common-session:
              session optional        pam_ecryptfs.so unwrap

因此,我注释掉了其他两个实例,重新启动后都可以正常工作,即在登录时自动挂载,并且在图形和控制台登录时在注销时自动卸载。(我使用备用tty从根帐户进行验证)

这是在笔记本电脑,台式机和virtualbox guest(Windows主机)上的18.04 Lubuntu上。

我对其他经验感兴趣。

edit_1:改进了措辞。edit_2:添加了桌面和VB测试结果。


禁用/注释这些行是否引起任何问题?更改密码是否仍重新包装eCryptfs密钥文件?
Xen2050

这对我在Linux Mint 19上起作用。要为其他细节添加更多细节:/etc/pam.d中引用ecryptfs的四个配置文件是:common-auth,common-password,common-session,common-session-非互动的。注释掉common-password和common-session-noninteractive中的行会导致注销时卸载所需的行为。同样,common-auth中的条目被设置为“可选”,而不是“必填”,因为它应该根据文档进行设置。但是,我保持原样。
–evencoil

@ Xen2050,对不起您的回复。更改注释掉行后,我没有发现任何问题,并且尚未尝试更改密码。
redrock

更改密码可能对测试很重要,它应该自动用您的新密码重新包装加密密钥,以便下次登录有效。如果它不工作,那么就更改密码回到前一个应该工作 ...这是一件好事,有一个备份,虽然]
Xen2050

1
@ Xen2050,我进行了更改密码的测试。有效。
redrock

2

我用rclocal中的脚本来做

#!/bin/sh
#

while true; do
    if [ ! -d /run/user/1000 ]; then
        if [ -f /home/momo/.mounted ]; then
            umount /home/harry
        fi      
    fi

    if [ ! -d /run/user/1001 ]; then
        if [ -f /home/vm/.mounted ]; then
            umount /home/maud
        fi
    fi

    sleep 10
done
exit 0

您如何获得用户名?
Avinash Raj

0

如果您不需要从cron或作业(非交互式任务)访问任何主目录,则只需注释掉该行

session  optional        pam_ecryptfs.so unwrap

在中/etc/pam.d/common-session-noninteractive

当用户注销时,这将导致卸载所有加密的主目录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.