73

从 OS X Yosemite 升级到 OS X El Capitan Developer Preview 后,我尝试编辑 /System/Library/LaunchDaemons/ssh.plist以将默认 SSH 端口更改为自定义端口。这是我几年来一直在使用的过程。

问题是 El Capitan 不允许我更改此文件夹中的任何内容(即使使用“sudo”也不行)。当我使用"ls -lO"列出内容时,该文件夹及其文件被标记为“受限” 。以前版本的 OS X 中的相同文件夹列表不显示“受限”。

这是 OS X El Capitan 的新功能吗?如何编辑“受限”的文件/文件夹?


我发现这是由于El Capitan中引入了一个名为“SIP”(系统完整性保护)的新功能。

在此处阅读更多信息:https ://forums.developer.apple.com/thread/4731?q=SIP

不幸的是,没有人建议在不实际禁用 SIP 的情况下编辑“受限”文件/文件夹的方法。

4

7 回答 7

77

您也可以通过以下方式暂时禁用 SIP

  1. 重启
  2. 一听到灰屏上的“Mac声音”,按Cmd+R进入Recovery模式
  3. 打开实用程序->终端
  4. 运行命令csrutil disable
  5. 重新启动,您将进入禁用 SIP 的正常操作系统
  6. 做所有你想做的改变
  7. 再次重启
  8. 一听到灰屏上的“Mac声音”,按Cmd+R进入Recovery模式
  9. 启用 SIPcsrutil enable
  10. 再次重启
  11. 完毕
于 2015-10-02T15:14:35.357 回答
27

在 10.11 取消保护 /System/Library 中的某些文件或允许您自己执行之前,不禁用 SIP 的唯一方法是通过将文件复制到其他地方来提供不同的服务,例如:

sudo cp /System/Library/LaunchDaemons/ssh.plist /Library/LaunchDaemons/ssh.plist

然后,您可以自己管理服务,而不是使用系统偏好设置中的共享面板:

sudo launchctl unload /Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /Library/LaunchDaemons/ssh.plist
于 2015-07-06T07:51:30.463 回答
4

我建议您尝试将所需的任何参数添加到 /Library/Preferences/ 中的 plist 中。例如,在我的例子中,我需要对 mDNSResponder 做一些改动以添加 AlwaysAppendSearchDomains 标志。正如苹果开发者论坛上的“bwells”所建议的那样,我只需要这样做

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist AlwaysAppendSearchDomains -bool YES
sudo launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

这是一种更简洁的方法,并且在重新启动后仍然存在,并且也应该在升级后仍然存在(至少在测试期间,我在禁用 SIP 后的手动更改被覆盖)。请注意,据我所知,这对 El Capitan 来说是新的。

于 2015-10-03T05:47:39.177 回答
4

您还可以在禁用文件系统管理的同时启用 SIP。以恢复模式重新启动并运行:

csrutil enable --without fs

这将允许您根据需要更改权限。

于 2015-10-30T13:09:00.310 回答
2
  1. 只需在重新启动时按“CMD+R”即可进入“恢复”模式。
  2. 打开终端
  3. 您的磁盘将安装在 /Volumes/Macintosh HD
  4. 通过 "rm" 删除文件:您对该终端拥有绝对控制权。
于 2016-05-10T08:13:54.750 回答
1

我使用复写克隆器来制作可克隆的备份......并且有几个轮换。

根据 bombich 的 mike 的说法,“SIP 仅适用于您当前启动的卷,因此 [one can] 从备份卷启动以删除 [files]”。

我确实使用了 johannes 的答案(恢复驱动器,csrutil 启用/禁用),但这需要重新启动 -> 恢复驱动器 -> 关闭 sip -> 重新启动 -> 删除废话 -> 重新启动 -> 恢复驱动器 -> 重新打开 sip - > 重新启动 ... 四次重新启动。

但是从克隆启动并将原始驱动器视为辅助驱动器将允许您在两次重新启动中删除有问题的文件......是吗?

于 2016-01-13T02:53:08.930 回答
-1

您可以通过 Finder 应用程序为系统组修改文件权限,从而“绕过”SIP 保护。

修改权限

即使重新启动后它对我来说也很好,我正在运行

ProductName: Mac OS X ProductVersion: 10.11 BuildVersion: 15A284

于 2015-10-15T14:24:24.737 回答