标签归档:csrutil

macOS 中‘/usr/bin’目录内添加命令,出现‘Operation not permitted’

原由:

macOS 10.11 开始引入的系统完整性保护(Rootless),不再能够随心所欲的读写很多路径下了。设置 root 权限也不行。

Rootless机制将成为对抗恶意程序的最后防线

解决:

于是尝试关闭 Rootless。重启按住 Command+R,进入恢复模式,打开Terminal(终端)。

csrutil disable

重启即可。如果要恢复默认,那么

csrutil enable

附录:

csrutil命令参数格式:

csrutil enable [--without kext | fs | debug | dtrace | nvram][--no-internal]

禁用:csrutil disable

(等同于csrutil enable –without kext –without fs –without debug –without dtrace –without nvram)

其中各个开关,意义如下:

  • B0: [kext] 允许加载不受信任的kext(与已被废除的kext-dev-mode=1等效)
  • B1: [fs] 解锁文件系统限制
  • B2: [debug] 允许task_for_pid()调用
  • B3: [n/a] 允许内核调试 (官方的csrutil工具无法设置此位)
  • B4: [internal] Apple内部保留位(csrutil默认会设置此位,实际不会起作用。设置与否均可)
  • B5: [dtrace] 解锁dtrace限制
  • B6: [nvram] 解锁NVRAM限制
  • B7: [n/a] 允许设备配置(新增,具体作用暂时未确定)