最初的问题
我遇到了一个零星的问题,我的Mac似乎“忘记”了我的主目录所在的位置。
第一个线索(因为这是我经常做的事情)始终是Google Chrome无法打开新标签页。我得到“哦按扣”错误屏幕。这导致我退出Chrome并重新启动它,进而导致出现此错误对话框,此后Chrome无法启动:
其他症状
许多其他需要主目录知识的事情也会失败:
- 当我打开某些Apple应用程序(例如“预览”,“注释”,“消息”)时,出现一个对话框,提示该对话框需要修复我的主目录并要求我进行身份验证。在此处输入密码会导致
/var/empty/Library
的所有者更改为我(从长远来看很不好,但是允许某些事情开始起作用)。 - 单击时Safari根本不会打开-它会在扩展坞中短暂显示,然后消失,没有“崩溃报告”对话框(尽管我不能说处于这种状态的系统是否知道我希望查看那些对话框)。
- 即使在“修复我的媒体库”之后,许多应用也无法打开:
- 预览:将出现一个Finder对话框:无法打开应用程序“预览”。
- Chrome:与以前相同的错误对话框,如上图所示
- 注意:停靠图标出现,然后消失。
- 修复我的媒体库后,某些以前无法打开的应用程序现在可以打开,其中许多忘记了我的设置:
- Safari(我在研究时正在使用它来写这个问题)
- BBEdit
- Pixelmator
- 笔记
- 无论“库”权限如何,某些应用似乎都不会受到影响:
- 安慰
- 系统偏好设定
- 钥匙串访问
- 除非使用Grab或按住Control将屏幕快照写入剪贴板,否则我无法截取屏幕截图(因为它没有对的写访问权限
/var/empty/Desktop
,该权限由root正确拥有)。 - 在“打开”和“保存”对话框中,它不会在边栏中显示我的主目录,也不会在其中显示任何常用目标位置(桌面,文档等)。
- 激活屏幕保护程序后,将显示系统默认设置(Flurry),而不是我的常规设置(“经典”指向我选择的照片目录)。
- 终端使用默认的颜色/字体/等设置,而不是我的自定义设置。
还有其他事情似乎运行良好:
- 时间机器
- 聚光灯
- 热门角落
自从我的工作机器发布后几天升级到High Sierra以来,到目前为止已经发生了3次。
这个调查
研究似乎表明macOS并不认为我的主目录是/var/empty
,而是它不知道我有一个主目录,并且某处存在一些后备逻辑,该逻辑会导致系统对任何用户使用/ var / empty没有主目录。(来源:是否可以创建没有主目录的用户?)
进一步的研究表明/ var / empty是不应该访问任何内容的用户的“安全监狱”(这就是为什么更改权限或在其他位置进行符号链接很不好的原因)。(来源:https : //serverfault.com/questions/116632/what-is-var-empty-and-why-is-this-directory-used-by-sshd)
根据过去的情况,重新启动可以解决问题(直到下次发生)。提交此问题后,我将尝试断开/重新连接网络电缆,然后注销以查看是否有任何帮助;我将返回并相应地编辑此段。 更新:我已断开连接并重新连接了网络电缆,然后重新启动了Finder。Chrome可以再次使用,所有其他症状似乎也已解决!当然,这可以减轻发生此问题时的痛苦,但是我仍然非常想理解并防止根本原因。
从终端我看不到的任何东西似乎都显示出问题:
Last login: Mon Nov 13 13:21:18 on ttys000
jrobb@oke-jrobb-mb: ~ % pwd
/Users/jrobb
jrobb@oke-jrobb-mb: ~ % cd /var/empty
jrobb@oke-jrobb-mb: /var/empty % ls -la
total 24
drwxr-xr-x 8 jrobb staff 256B Oct 20 16:32 ./
drwxr-xr-x 27 root wheel 864B Oct 20 14:49 ../
-rw-r--r--@ 1 root staff 10K Oct 20 16:32 .DS_Store
drwx------ 2 root staff 64B Oct 14 05:52 .ssh/
drwx------ 4 root staff 128B Oct 9 13:22 Desktop/
drwx------ 3 root staff 96B Sep 25 15:46 Documents/
drwx------ 3 root staff 96B Sep 25 15:46 Downloads/
drwx------+ 28 root staff 896B Nov 13 13:37 Library/
jrobb@oke-jrobb-mb: /var/empty % whoami
jrobb
jrobb@oke-jrobb-mb: /var/empty % echo $HOME
/Users/jrobb
jrobb@oke-jrobb-mb: /var/empty %
High Sierra的集成日志记录使Console.app成为梦night以求的梦,但是尽管如此,我还是花费了大量时间寻找相关消息。我发现了几个,似乎是错误造成的问题,但没有出现到成为问题。我怀疑这是由于以下事实造成的:您无法将所有子系统中所有消息的无尽流滚动回到打开控制台之前,并且没有明显的方式一次可以搜索多个文件,除非您要搜索上述仅转发流。一切正常时,我没有运行Console,所以我想我很走运吗?(非常感谢您在此提供的任何帮助/建议。)
我见过许多其他人遇到相同问题的情况,最早可以追溯到2014年(10.9小牛)。以下是与遇到相同或相关问题的其他人的一些链接,对此没有令人满意的解决方案:
- https://www.jamf.com/jamf-nation/discussions/22851/active-directory-user-home-directory-set-to-var-empty
- 至少一个Jamf用户在那里找到了解决方案(选中了Directory Utility中的“创建移动帐户之前需要确认”复选框,并且当出现确认对话框时,该用户单击“否”)。这些复选框已在我的系统上选中,但我从未见过(也不拒绝)这样的确认对话框,因此我认为情况并非如此。但是,这不是共享计算机,因此现在未选中这些框。
- https://arstechnica.com/civis/viewtopic.php?f=19&t=1239175
- 对此线程从来没有任何回复,所以我抓住了一个机会,问这个用户是否发现了问题。还没有答案。
- /superuser/721623/could-not-create-directory-var-empty-ssh
看来,对于那些拥有“解决方案”的人来说,它们实际上是创可贴,可暴露出重大的安全漏洞:
- 符号链接
/var/empty
到正确的主目录 chown _user_ /var/empty
- 等等
上下文
我正在使用运行High Sierra的2013年末iMac(Core i7 3.9GHz,32GB RAM,1TB SSD)(始终是最新的修补版本;此版本从10.13.0开始,现在影响10.13.1)。这是由Jamf管理的设备,我向Active Directory域进行身份验证。我在“用户和组”首选项中的个人资料被标记为“管理员,托管,移动”。
升级到High Sierra之后,我们开始在我工作的地方使用Jamf,因此这可能是Jamf问题或High Sierra问题(或其他任何问题)。
还有许多其他的Mac用户,许多其他的High Sierra用户以及许多其他的Jamf用户。据我所知,没有其他用户遇到此问题。我是唯一的iMac用户-这里的所有其他Mac都是笔记本电脑。(我很难想象我的iMac是问题所在-只是详尽而已。)
此问题开始在用户会话的中间发生。一切都很好,直到突然变得不妙。因此,我认为它与登录或Active Directory没有任何关系。
我在寻找什么
我正在寻找一个可以阻止macOS首先进入此状态的答案,并希望能解释何时以及如何发生。