从OS X Yosemite升级到OS X El Capitan Developer Preview后,我尝试编辑 /System/Library/LaunchDaemons/ssh.plist ,将默认SSH端口更改为自定义端口。这是我几年来一直在使用的过程。
问题是El Capitan不允许我更改此文件夹中的任何内容(甚至不包括" sudo")。当我使用" ls -lO" 列出内容时,文件夹及其文件被标记为"限制" 。以前版本的OS X中的相同文件夹列表未显示" restricted"。
这是OS X El Capitan的新功能吗?如何编辑"限制" 的文件/文件夹?
我发现这是因为 El Capitan 中引入了一项名为" SIP" (系统严重保护)。
在此处阅读更多内容:https://forums.developer.apple.com/thread/4731?q=SIP
不幸的是,没有人建议采用编辑方式"限制"没有实际禁用SIP的文件/文件夹。
答案 0 :(得分:73)
您还可以通过以下方式临时禁用SIP
csrutil disable
csrutil enable
答案 1 :(得分:26)
直到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
答案 2 :(得分:4)
我建议你尝试在/ Library / Preferences /中为plist添加你需要的任何参数。例如,在我的情况下,我需要对mDNSResponder进行轻微更改以添加AlwaysAppendSearchDomains标志。正如Apple开发者论坛上的“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来说是新的。
答案 3 :(得分:3)
您还可以在禁用文件系统管理时启用SIP。在恢复模式下重新启动并运行:
csrutil enable --without fs
这将允许您根据需要更改权限。
答案 4 :(得分:2)
答案 5 :(得分:1)
我使用抄袭克隆器进行克隆备份......并且有几个轮流使用。
根据mike在bombich" SIP仅适用于您当前启动的音量,因此[可以]从备份音量启动以删除[文件]"。
我确实使用过johannes'回答(恢复驱动器,csrutil启用/禁用),但这需要重启 - >恢复驱动器 - >啜饮 - >重启 - >删除废话 - >重启 - >恢复驱动器 - >啜饮回来 - >重启...四次重启。
但是从克隆启动并将原始驱动器视为辅助驱动器将允许您在两次重新启动时删除有问题的文件...是吗?
答案 6 :(得分:-1)
您可以通过系统组的Finder应用程序修改文件权限来“通过”SIP保护。
即使重启后我也能正常运行
ProductName: Mac OS X
ProductVersion: 10.11
BuildVersion: 15A284