• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    2年前 (2016-08-15)  mac |   抢沙发  28 
    文章评分 1 次,平均分 4.0

    什么是系统集成保护(System Integrity Protection)?

    使用了系统集成保护,苹果决定第三方应用有一些永远不会被允许的事情。从某些层面来讲,这种保护和iOS更像了。第三方应用相比起来更受限制。这就是rootless一词的由来,系统在某种程度上限制了管理员账号的权限。

    rootless特性使得某些操作只有苹果的应用可以被许可(通过代码签名来判断)。所以第三方应用即使是运行在root权限中,有一些操作也无法完成。在我的测试中我注意到了以下几点:

    1./System文件夹下的所有文件都不能被苹果应用以外的程序修改(例如各种安装器和升级部件)
    2.当前的API例如task_for_pid不能在系统进程下被调用了。这意味着以前注入系统进程(Finder、Messages或者系统内核)的程序都不能用了。
    3.有意思的是,rootless依然允许已签名的KEXT内核拓展被载入。问题是KEXT可以进行许多无限制的系统及操作。

    El Capitan 加入了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] 允许设备配置(新增,具体作用暂时未确定)
     

    除特别注明外,本站所有文章均为String me = "Creater\忠实的资深Linux玩家";原创,转载请注明出处来自http://unix8.net/home.php/5018.html

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享