在 Console.app 中,如何显示 <private> 标签实际指的是什么?

Nev*_*ams 15 console.app macos macos-highsierra

在 MacOS 的最后几个版本中,Console.app 的审查越来越严格,几乎无用。

文件名和 URL 已被<private>标记替换,因此无法追踪和纠正错误。

虽然下面的例子不是错误,也不是我多年来一直使用的文件权限错误cfprefsd,无法追踪它,但它是一个例子,说明大多数记录的消息Console.app变得多么模糊和无用:

 com.apple.WebKit.Networking [19870 <private> <private>] start
Run Code Online (Sandbox Code Playgroud)

如何<private>在 Console.app 日志消息中显示标签所指的内容?

Nev*_*ams 15

Console.app可以显示实际文件路径和 URL,而不是private通过在 中发出以下命令Terminal.app

    sudo log config --mode "private_data:on"
Run Code Online (Sandbox Code Playgroud)

这会导致记录到的消息Console.app显示更具体和有用的信息,如 URL 和文件名,而不仅仅是神秘的<private>标签,但不会追溯。必须再次出现错误或条件才能显示先前审查的数据。

因此,一条基本上无用的消息,例如:

  com.apple.WebKit.Networking [19870 <private> <private>] start
Run Code Online (Sandbox Code Playgroud)

然后将扩展为:

 com.apple.Webkit.Networking [19920 www.facebook.com:443 stream, pid: 5311, url: https://www.facebook.com/api/graphqlbatch/, tls] start
Run Code Online (Sandbox Code Playgroud)

由于private_data:on长期离开可能会损害隐私和安全,因此可以使用以下命令将日志记录工具恢复到其正常的模糊级别:

sudo log config --mode "private_data:off"

一旦完成跟踪所需的事件。

  • 根据 mjtsai,这个解决方案似乎不适用于 Catalina https://mjtsai.com/blog/2019/11/21/catalinas-log-cant-be-unprivatised/ (3认同)

小智 10

卡特琳娜的解决方案

您可以添加一个 .mobileprofile,这将在 Catalina 10.15.4 中取消日志的私有化。

我将在这里复制用户 lx07 在以下位置共享的答案:https ://superuser.com/a/1532052/1091227 (他们的帖子包含我无法重新发布的图片,因此请查看更多详细信息。)

如此处统一日志:如何启用私有数据所述,您可以创建和安装这样的配置文件:

启用(显示)私人数据的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>PayloadContent</key>
  <array>
    <dict>
      <key>PayloadDisplayName</key>
      <string>ManagedClient logging</string>
      <key>PayloadEnabled</key>
      <true/>
      <key>PayloadIdentifier</key>
      <string>com.apple.logging.ManagedClient.1</string>
      <key>PayloadType</key>
      <string>com.apple.system.logging</string>
      <key>PayloadUUID</key>
      <string>ED5DE307-A5FC-434F-AD88-187677F02222</string>
      <key>PayloadVersion</key>
      <integer>1</integer>
      <key>System</key>
      <dict>
        <key>Enable-Private-Data</key>
        <true/>
      </dict>
    </dict>
  </array>
  <key>PayloadDescription</key>
  <string>Enable Unified Log Private Data logging</string>
  <key>PayloadDisplayName</key>
  <string>Enable Unified Log Private Data</string>
  <key>PayloadIdentifier</key>
  <string>C510208B-AD6E-4121-A945-E397B61CACCF</string>
  <key>PayloadRemovalDisallowed</key>
  <false/>
  <key>PayloadScope</key>
  <string>System</string>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadUUID</key>
  <string>D30C25BD-E0C1-44C8-830A-964F27DAD4BA</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

将文件另存为YourProfileName.mobileconfig。如果您不需要对其进行签名或部署,您只需双击.mobileconfig它,一旦您进行身份验证,它就会自动添加到系统偏好设置中的配置文件中。

监测解锁用户和组系统预置在Mac OS卡塔利娜10.15.3与(作为链接的文章中所建议的)这个命令的结果如下:

sudo log stream --predicate '(subsystem == "com.apple.opendirectoryd") && (senderImagePath == "\/System\/Library\/OpenDirectory\/Modules\/PlistFile.bundle\/Contents\/MacOS\/PlistFile")'
Run Code Online (Sandbox Code Playgroud)
  • 没有配置文件加载<private>数据(在这种情况下用户解锁)被编辑。

  • 加载配置文件后,<private>可以看到以前的数据。

  • 我没有得到苹果。旧的`private_data:on` 方法很容易打开/关闭,每次重启后都必须重新启用。使用这种新方法,大多数人将一直保持私密登录状态。这没什么大不了的,但如果您的日志被窥探,则会增加危险。例如:通过查看 mDNSResponder 日志,原本低权限的进程现在可以查看您的历史 DNS 查询/浏览习惯。在试图提高安全性的同时,他们迫使用户使用安全性较低/更容易出错的解决方法。整体安全/隐私似乎更糟。或者我错过了什么? (2认同)