如何在Mac上禁用系统完整性保护(以及为什么不应该禁用)

Mac OS X 10.11 El Capitan使用名为系统完整性保护的新功能保护系统文件和进程。SIP是内核级别的功能,它限制“root”帐户可以执行的操作。

这是一个很棒的安全特性,几乎每个人-甚至是“高级用户”和开发人员-都应该启用它。但是,如果您确实需要修改系统文件,您可以绕过它。

什么是系统完整性保护?

相关:什么是Unix,它为什么重要?

在MacOSX和其他类似UNIX的操作系统(包括Linux)上,有一个传统上对整个操作系统拥有完全访问权限的“root”帐户。成为root用户-或获得root权限-使您可以访问整个操作系统,并能够修改和删除任何文件。获得root权限的恶意软件可能会利用这些权限损坏和感染低级操作系统文件。

在安全对话框中键入您的密码,您就已经为应用程序授予了root权限。这传统上允许它对你的操作系统做任何事情,尽管许多Mac用户可能没有意识到这一点。

系统完整性保护-也称为“无根”-通过限制root帐户发挥作用。操作系统内核本身会检查root用户的访问权限,并且不允许它执行某些操作,例如修改受保护的位置或将代码注入受保护的系统进程。所有内核扩展都必须签名,您不能从MacOSX本身禁用系统完整性保护。具有提升的root权限的应用程序不能再篡改系统文件。

如果您尝试写入以下目录之一,则最有可能注意到这一点:

/系统。 /仓。 /usr。 /sbin

OSX就是不允许,你会看到一条“不允许操作”的消息。OSX也不允许您在其中一个受保护的目录上挂载另一个位置,因此没有办法绕过这一点。

受保护位置的完整列表位于Mac上的/System/Library/Sandbox/rootless.conf。它包括MacOSX附带的Mail.app和Chess.app应用程序等文件,因此您不能删除这些应用程序-即使是以root用户身份从命令行删除。然而,这也意味着恶意软件不能修改和感染这些应用程序。

并非巧合的是,Disk Utility中的“修复磁盘权限”选项-长期以来一直用于排除各种Mac问题-现在已被删除。无论如何,系统完整性保护都应该防止重要的文件和权限被篡改。磁盘管理实用程序已重新设计,仍有用于修复错误的“急救”选项,但没有修复权限的方法。

如何禁用系统完整性保护

警告:除非你有很好的理由这样做,并且清楚地知道自己在做什么,否则不要这么做!大多数用户不需要禁用此安全设置。这并不是为了防止您扰乱系统-它是为了防止恶意软件和其他行为不良的程序扰乱系统。但一些低级别的公用事业只有在拥有不受限制的访问权限的情况下才能正常运行。

相关:您可以在恢复模式下访问的8项Mac系统功能

系统完整性保护设置不会存储在Mac OS X本身中。取而代之的是,它存储在每个单独的Mac上的NVRAM中。它只能从恢复环境中修改。

要引导进入恢复模式,请重新启动Mac并在引导时按住Command+R。您将进入恢复环境。点击“实用程序”菜单,选择“终端”,打开终端窗口。

在终端中键入以下命令,然后按Enter键检查状态:

您将看到是否启用了系统完整性保护。

要禁用系统完整性保护,请运行以下命令:

如果您决定稍后启用SIP,请将其返回到恢复环境,然后运行以下命令:

重新启动Mac,新的系统完整性保护设置将生效。root用户现在将拥有对整个操作系统和每个文件的完全、不受限制的访问权限。

如果在将Mac升级到OS X 10.11 El Capitan之前,您之前已将文件存储在这些受保护的目录中,则这些文件并未被删除。你会发现它们被移到了你的mac上的/Library/SystemMigration/History/Migration-(UUID)/QuarantineRoot/目录下。

图片来源:Flickr上的信治

相关文章