macOS 无法删除带有 sunlnk 标志的文件夹

问题描述 投票:0回答:2

当我尝试将

/usr/local
中的某些文件夹复制到标准用户的文件夹时,我发现有一个名为“local”的文件夹我无法删除,即使使用

# rm -rf local
rm: local: Operation not permitted

它告诉我“不允许操作”,但我确实有超级用户权限。然后我想可能是flags有问题,flag信息是:

# ls -al
drwxr-xr-x  2 root    wheel   68 Oct 10 10:04 local
# ls -lO
drwxr-xr-x  2 root  wheel  sunlnk 68 Oct 10 10:04 local

看来我也无法改变它的标志。那么

sunlnk
是什么意思以及我可以做什么来删除空文件夹?

linux macos unix filesystems superuser
2个回答
3
投票

MacOS 中由于“系统完整性保护”而存在“sunlnk”标志,因此只有在禁用系统完整性保护后才能删除具有“sunlnk”标志的文件。禁用系统完整性保护的方法是将计算机重新启动到恢复模式,然后进入Utility>Terminal,在其中输入

# csrutil status
# csrutil disable

然后

reboot
您的计算机。当你完成你想要的事情时,记得再次按
csrutil enable
打开它。有关更多详细步骤,请参阅 https://www.howtogeek.com/230424/how-to-disable-system-integrity-protection-on-a-mac-and-why-you-shouldnt/


1
投票

如果您无法访问任何文件或文件夹,或者任何终端命令不适用于特定目录 – 是时候召回 macOS 沙箱和 POSIX 权限了!

检查 SIP 状态,因此将以下命令写入终端:

csrutil status

你会得到这个:

/*   System Integrity Protection status: enabled.   */

如果状态为

enabled
,则需要禁用SIP。

要在 macOS 上关闭无根/系统完整性保护,请执行以下步骤:

  1. 要非常小心在此处阅读有关 SIP 的信息
  2. 关闭 Mac(Apple > 关机)。
  3. 按住Command-R,然后按电源按钮...
  4. 等待 macOS 启动进入 macOS 实用程序窗口。
  5. 选择实用程序 > 终端。
  6. 输入
    csrutil disable
  7. 重新启动。

要再次启用 SIP,请重复步骤 2-5 并在终端中输入以下命令:

csrutil enable

警告

正如 @dan 所报告的,运行

csrutil enable
命令后,您可能会遇到棘手的问题。请在下面的评论中阅读相关内容。

© www.soinside.com 2019 - 2024. All rights reserved.