Answers:
可以禁用10.11中的系统完整性保护,尽管这不是您应该轻而易举的事情。
您可以通过执行以下操作完全禁用SIP:
csrutil disable
另外,您还可以dtrace
通过运行以下命令来重新启用SIP,同时仍然允许其工作:
csrutil enable --without dtrace
请注意,这样做时会收到以下警告:
这是不受支持的配置,将来可能会中断,并使您的计算机处于未知状态。
重新启动后,dtrace
将像在优胜美地一样工作。
例如,将二进制文件复制到不受限制的目录中, /tmp
csrutil disable
在某种程度上对桁架不起作用。但是正如@JJ所说的那样chroot
,这启发了我。
仍然我不知道为什么这样。我想这可能与“受保护的目录”有关。
这是测试:
CC@~ $ csrutil status
System Integrity Protection status: disabled.
CC@~ $ sudo dtruss /bin/echo
dtrace: failed to execute /bin/echo: dtrace cannot control executables signed with restricted entitlements
CC@~ $ cp /bin/echo /tmp
CC@~ $ sudo dtruss /tmp/echo
SYSCALL(args) = return
thread_selfid(0x0, 0x0, 0x0) = 46811 0
csops(0x0, 0x0, 0x7FFF51B6CA20) = 0 0
issetugid(0x0, 0x0, 0x7FFF51B6CA20) = 0 0
shared_region_check_np(0x7FFF51B6A918, 0x0, 0x7FFF51B6CA20) = 0 0
stat64("/usr/lib/dtrace/libdtrace_dyld.dylib\0", 0x7FFF51B6BEA8, 0x7FFF51B6CA20 = 0 0