远程登录(例如 ssh)结束时,OS X Filevault 不会卸载,从而锁定控制台登录

远程登录(例如 ssh)结束时,OS X Filevault 不会卸载,从而锁定控制台登录

我有一台 Mac Mini,供我家的几位用户共用,既是我们的媒体服务器,也是用于存储笔记本电脑(通过 rsync/ssh)的文件服务器,这些笔记本电脑是 Mac/Linux/Windows 的混合体。为了确保这台便携性极强的机器(它就放在电视旁边,这对小偷来说很方便)的安全,我使用 Filevault 来保护家庭账户。

好的,我的问题如下:远程登录(包括 ssh 和 rsync)将正确挂载我的 Filevault 加密主目录,但它永远不会卸载,即使远程会话结束时也是如此。因此,如果我随后尝试登录 Mac 的控制台,它会摇晃并告诉我“此时无法登录 Filevault”,并且不让我登录。大概这是因为它已安装并认为发生了 Filevault 错误而不是继续进行。

有人可以就以下部分或全部问题提供建议吗:

  • 如果已经正确安装,我是否可以让控制台登录只允许我登录而不必担心 Filevault,而不是愚蠢地拒绝允许登录?

  • 我可以让远程会话(例如 ssh)自动下马完成后,Filevault 会如何运作?理想情况下,只有最后的live 或 ssh login 应该卸载,因为其他同时登录的用户应该能够继续访问我的主目录中的文件。

谢谢!

(注:为清晰和简洁起见,进行了编辑。)

答案1

您可以在 Mac Mini 上创建 AFP 或 SMB 共享(在您的 Filevaulted 主目录中),然后使用碳抄本(如果您的其他机器是 Mac;其他备份解决方案也适用于 PC)将备份推送至共享。

你需要 SSH 有什么特别的原因吗?还是你只是担心家庭网络的安全?如果你决定真的需要使用 SSH,也许你可以看看MacFuse用于挂载 SSHFS 共享(?)。

答案2

好吧,我必须在这里做一些假设,但我相信我对你的问题有答案。我写这篇文章是为了让任何有同样问题的新手都能合理地跟上。

  1. 打开终端

  2. 在提示符下,输入:

    diskutil list
    

    应列出所有当前已安装的本地卷的列表。找到您无法登录的 FileVault 用户的标识符(应标记为 diskX,其中 X 是数字)。以下是示例:

        /dev/disk0
        #:                       TYPE NAME                SIZE       IDENTIFIER
        0:      GUID_partition_scheme                    *160.0 GB   disk0
        1:                        EFI                     209.7 MB   disk0s1
        2:                  Apple_HFS Macintosh HD        159.7 GB   disk0s2
        /dev/disk1
        #:                       TYPE NAME                SIZE       IDENTIFIER
        0:      GUID_partition_scheme                    *1.0 TB     disk1
        1:                        EFI                     209.7 MB   disk1s1
        2:                  Apple_HFS Time Machine        376.5 GB   disk1s2
        3:                  Apple_HFS Media Disk HD       623.2 GB   disk1s3
        /dev/disk2
        #:                       TYPE NAME                SIZE       IDENTIFIER
        0:     Apple_partition_scheme                    *319.4 GB   disk2
        1:        Apple_partition_map                     32.3 KB    disk2s1
        2:                  Apple_HFS main                319.4 GB   disk2s2
    

    在上面的例子中,Apple_HFS 主要,main 是我们要定位的 FileVault 用户帐户。因此,我们想要的标识符是磁盘2

  3. 在提示符下,输入:

    diskutil unmountDisk diskX
    

    确保输入适合您情况的“X”数字。这可能需要一些时间,但终端应该会返回一条消息,说明:

    Unmount of all volumes on diskX was successful
    

    您现在应该能够再次使用 FUS 访问该帐户。

    如果这不起作用,我能想到两个替代方案:要么重新启动计算机(不是最理想的解决方案);要么终止保持 sparsebundle 打开的进程(可能会导致数据损坏):

  4. 在终端提示符下,输入:

    sudo lsof | grep sparsebundle
    

    系统应返回一个打开的文件列表,这些文件由保持 FileVault 映像打开的进程访问。在 Snow Leopard 上,它应该是磁盘映像。请注意名称旁边的进程 ID。下面是我的进程 ID:

      diskimage 68420           root    4u      REG       14,2    8388608 5858242 /Users/main/main.sparsebundle/bands/241
      diskimage 68420           root    5u      REG       14,2     122880 5856490 /Users/main/main.sparsebundle/token
      diskimage 68420           root    6r      DIR       14,2        204 5856486 /Users/main/main.sparsebundle
      diskimage 68420           root    7r      DIR       14,2      56780 5856489 /Users/main/main.sparsebundle/bands
      diskimage 68420           root    8u      REG       14,2    8388608 5856497 /Users/main/main.sparsebundle/bands/0
    
  5. 在提示符下,输入:

    sudo kill [process id of diskimages]
    

(在上面的例子中,我的 PID 是 68240。)您可能必须重复上述步骤 3,但这应该允许您将 FUS 放入您的帐户。但是,由于您终止了磁盘映像进程,因此您的磁盘映像可能会受到一些损坏。(请注意,我还没有测试过这一点)。自 2006 年 5 月以来,我一直在 Tiger 上使用 FileVault,并且有几次不得不强行卸载我的用户帐户。但我没有遇到任何 FileVault 损坏问题。但我对 Snow Leopard 版本的 FileVault 没有太多经验。

我还尝试查看是否可以在注销之前卸载,但失败了,可能是因为我登录后文件处于打开状态。我相信您可以编写一个脚本并让系统在最终受影响的远程用户注销时运行它,但不幸的是,这超出了我的专业知识范围。

有一件事你要做的就是远程以另一个用户身份登录,并在结束会话后执行步骤 3,直到您能够自动执行。如果您能够找到一种自动化方法,请发布它,因为我很想学习如何做到这一点。

相关内容