root用户无法删除文件

root user can't delete file

我使用最新的 Mojave 在 mac 中启用了 root 用户。我试图用它删除一个文件夹,但由于某种原因,我收到错误 "Permission denied"。我以为 root 可以在 unix 系统上做任何事情?

sh-3.2# whoami
root
sh-3.2# pwd
/opt/local/var/macports/home/Library
sh-3.2# ls -lhart
total 0
drwxr-xr-x  3 root  admin    96B Sep 24  2016 ..
drwxr-xr-x  3 root  admin    96B Sep 24  2016 .
drwxr-xr-x  2 root  admin    64B Oct 13 18:54 Preferences
sh-3.2# rm -rf Preferences/
rm: Preferences/: Operation not permitted
sh-3.2# whoami
root
sh-3.2#

似乎 SIP 保护了整个 /opt/local/var/macports/home 文件夹,正如上面假设的那样。但是,无需停用 SIP 即可删除文件夹。

This answer about MacPorts folder removal 表示删除此文件夹是 "home" 的 "macports" 用户将允许 root 删除该文件夹,因此

sudo /usr/bin/dscl . -delete "/Users/macports"
sudo /usr/bin/dscl . -delete "/Groups/macports"

应该允许 sudo rm -rf /opt/local/var/macports/home/Preferences 按需要工作。

如果您不想删除 "macports" 用户,请按照以下步骤使用 Recovery Mode 中的终端删除这些文件夹:

  • 关闭您的 Mac
  • 启动您的 Mac 并在启动时立即按 CMD + R 以在恢复模式下启动(您可以在出现 Apple 徽标时松开按键)
  • 打开终端应用程序
  • cd /Volumes/Macintosh\ HD/opt(您的硬盘名称可能与 "Macintosh HD" 不同)
  • rm -Rf 本地