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

Mac OS X 10.11 El Capitan通过名为System Integrity Protection的新功能来保护系统文件和进程。 SIP是内核级别的功能,它限制了“ root”帐户可以执行的操作。

这是一项强大的安全功能,几乎每个人-甚至“高级用户”和开发人员-都应启用它。但是,如果确实需要修改系统文件,则可以绕开它。

什么是系统完整性保护?

有关的:什么是Unix?为何重要?

在Mac OS X和其他类似Linux的操作系统(包括Linux)上,有一个“ root”帐户,该帐户通常具有对整个操作系统的完全访问权限。成为root用户-或获取root权限-使您可以访问整个操作系统以及修改和删除任何文件的能力。获得root权限的恶意软件可能会使用这些权限来破坏和感染低级操作系统文件。

在安全性对话框中输入密码,并已授予应用程序root权限。传统上,这使它可以对您的操作系统执行任何操作,尽管许多Mac用户可能尚未意识到这一点。

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

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

  • /系统
  • /箱
  • / usr
  • / sbin

OS X只是不允许这样做,并且您会看到“不允许操作”消息。 OS X也不允许您在这些受保护的目录之一上挂载其他位置,因此无法解决。

您可以在Mac上的/System/Library/Sandbox/rootless.conf中找到受保护位置的完整列表。它包含Mac OS X随附的Mail.app和Chess.app应用程序之类的文件,因此即使您是root用户,也无法从命令行删除这些文件。这也意味着恶意软件无法修改和感染这些应用程序。

并非巧合的是,“磁盘工具”中的“修复磁盘权限”选项(长期用于解决各种Mac问题)已被删除。无论如何,系统完整性保护都应防止篡改关键文件权限。磁盘实用程序已经过重新设计,仍然具有用于修复错误的“急救”选项,但没有修复权限的方法。

如何禁用系统完整性保护

警告:请勿这样做,除非您有充分的理由这样做并且确切知道自己在做什么!大多数用户不需要禁用此安全设置。并不是要防止您干扰系统,而是要防止恶意软件和其他行为不佳的程序与系统干扰。但是,某些低级实用程序只有在具有不受限制的访问权限时才能起作用。

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

系统完整性保护设置未存储在Mac OS X本身中。而是将其存储在每台Mac的NVRAM中。只能在恢复环境中对其进行修改。

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

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

csrutil状态

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

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

csrutil禁用

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

csrutil启用

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

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

图片来源:Flickr上的Shinji


$config[zx-auto] not found$config[zx-overlay] not found