当 `sudo` 和 `bypass` 不起作用时如何在 macOS 上避免 "Operation not permitted"

How to avoid "Operation not permitted" on macOS when `sudo` and `bypass` don't do the trick

在 macOS (High Sierra) 上,当我尝试列出路径中的文件时

/private/var/db/ConfigurationProfiles/Store

我收到错误“Operation not permitted”。使用 sudo 并没有改善它,甚至使用 bypass 助手也没有改变任何东西:

sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass ls -l /private/var/db/ConfigurationProfiles/Store

也给出“Operation not permitted”。怎么才能list/access路径下的文件/private/var/db/ConfigurationProfiles/Store?

附加信息:

通过ls -al /private/var/db/ConfigurationProfiles显示的封闭目录列表:

drwxr-xr-x   5 root  wheel   160 13 Apr  2018 .
drwxr-xr-x  85 root  wheel  2720 28 Sep 06:27 ..
drwxr-xr-x@  4 root  wheel   128 16 Dec  2017 Settings
drwx------   3 root  wheel    96  1 Oct 21:56 Setup
ls: Store: Operation not permitted

一致,但奇怪的是 Store 无法列出。当以当前用户身份执行 ls 和通过 sudo.

时都会发生这种情况

最可能的原因是 system integrity protection (SIP) - csrutil 是命令行实用程序。您需要禁用它才能查看目录。

  • 要查看您的状态,您需要:

csrutil status

  • 要禁用它(这通常是一个 糟糕的 想法):

csrutil disable(然后您可能需要重新启动)。

  • 要启用它(完成后应该重新打开):

csrutil enable

很多时候“不允许操作”都与权限有关,所以真正解决问题的方法是进入相关文件夹的权限。

  1. 打开 Finder,然后找到给出失败操作的文件夹(例如“ls”)。

  2. 右键单击该文件夹,然后select“获取信息”

  3. 添加用户对文件夹有read/write权限;又名,添加您的用户个人资料(您)。

如果这不能解决问题,则可能是终端应用本身无法通过隐私火球访问数据。要解决这个问题:

  1. 单击左上角的 Apple 符号和 select“系统偏好设置”
  2. 打开“安全与隐私”
  3. Select“隐私”菜单
  4. 在左侧,select“完全磁盘访问”
  5. 在左下角,单击锁并输入您的 MacOS 密码或滑动手指(眼睛)。
  6. 单击右侧的加号按钮将终端应用程序添加到具有完整磁盘访问权限的列表中。完成后确保选中终端。
  7. 重置锁,大功告成。
  8. 关闭终端,然后重新启动它。

这应该允许终端访问相关文件夹。

更多信息:https://osxdaily.com/2018/10/09/fix-operation-not-permitted-terminal-error-macos/