从 macOS 下的创建一个无法删除的文件聊聊 SIP 的作用

今天刷到一个帖子,如图,提问者问:

有没有办法创建一个文件无法被删除,或者很难被删除(成本较高)。

网友们怀疑他是想做流氓软件,并有人调侃道“360很想知道”。

提问者声明“自己用的”,不是想做流氓软件。

根据网友们的建议,有如下几个思路:

关闭 sip 把应用装到系统保护目录如/bin 然后开启 sip ,这样就不能修改了,除非在恢复模式关闭 sip

Apple Silicon 上的 macOS 现在安装 kernel extensions 就很难删除,安装只需要 root 权限,删除反而需要关闭 SIP……
Intel 上的 macOS 倒是可以直接用命令删除。

应用不被删除这个不太好搞,但是里面的文件不容易被删除可以做,直接不提供删除文件的按钮不就行了,然后文件在实际磁盘中的位置搞得层级深一点,或者上 blob 这种存储形式,find 也找不到

有个删除需要密码的操作,把这个文件所属文件夹的权限改成只读,之后删除里边的文件时都需要输入开机密码( PS:我刚把 rm 删除操作,放到了回收站里,哈哈哈)

大多数讨论都涉及到 “SIP” 这个东西。

那么 SIP 又是什么呢?

macOS 系统的 SIP 是“System Integrity Protection”的缩写,中文翻译为“系统完整性保护”。它是一项安全技术,旨在防止未经授权的更改对 macOS 系统进行修改,从而提高系统的安全性。

SIP 的主要作用包括:

  • 防止恶意软件修改系统文件和关键设置,从而降低系统被攻击的风险。
  • 防止用户误操作导致系统损坏。
  • 确保系统始终处于稳定和可信的状态。

SIP 默认情况下处于开启状态。如果您需要关闭 SIP,可以按照以下步骤进行操作:

  1. 重新启动 Mac 并进入恢复模式。
  2. 在恢复模式中,打开“终端”。
  3. 在“终端”中输入以下命令:
csrutil disable
  1. 按下“Enter”键。
  2. 重新启动 Mac。

关闭 SIP 后,您将能够对系统进行更多自定义操作,例如安装第三方内核扩展或修改系统文件。但是,这也将增加系统被攻击的风险。因此,建议您仅在需要时关闭 SIP,并在完成操作后重新开启。

以下是一些可能需要关闭 SIP 的情况:

  • 您需要安装第三方内核扩展。
  • 您需要修改系统文件。
  • 您需要进行系统调试。

在关闭 SIP 之前,请务必考虑以下风险:

  • 系统可能被恶意软件攻击。
  • 系统可能因误操作而损坏。
  • 系统可能变得不稳定或不可靠。

如果您不确定是否需要关闭 SIP,建议您保持 SIP 开启状态。