当 `sudo` 和 `bypass` 不起作用时,如何避免在 macOS 上出现“不允许操作”的情况

hal*_*leo 12 macos file-io sudo

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

/private/var/db/ConfigurationProfiles/Store
Run Code Online (Sandbox Code Playgroud)

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

sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass ls -l /private/var/db/ConfigurationProfiles/Store
Run Code Online (Sandbox Code Playgroud)

Operation not permitted也给出“ ”。如何列出/访问路径下的文件/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
Run Code Online (Sandbox Code Playgroud)

始终如一,但奇怪的Store是无法列出。ls当以当前用户身份执行和通过 执行时都会发生这种情况sudo

Joh*_*tts 15

您可以尝试以下两件事......

有时“不允许操作”与权限有关,因此您可以尝试解决问题的一件事是进入有问题的文件夹的权限。

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

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

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

另一件事可能导致问题......可能是终端应用程序本身无法通过隐私火球访问数据。为了解决这个问题:

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

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

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

  • 正如 OP 所提到的,关闭 SIP 并不是一个真正有用的解决方案。我被这个答案的第一部分迷惑了(更改文件权限是显而易见的尝试)。但这个答案的第二部分是,恕我直言,正确的答案。在“隐私”下还有一个“文件和文件夹”项目。就我而言,没有检查有问题的目录“文档”。我检查了一下,瞧,我可以从 iTerm 应用程序访问 Documents 文件夹。所以我认为这个答案是最好的答案。 (2认同)

tuk*_*kan 5

最可能的原因是系统完整性保护 (SIP) -csrutil是命令行实用程序。您需要禁用它才能查看目录。

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

csrutil status

  • 要禁用它(这通常是一个主意):

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

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

csrutil enable

  • **禁用SIP**就是使用推土机打开门。**完整磁盘访问**是关键,如上所述。 (4认同)