OS X10.11之后的SIP和Rootless

什么是 SIP 呢?

SIP全名System Integrity Protection(系统完整性保护),又叫做Rootless保护机制,它是为了保护系统进程、文件、文档不被其它进程修改,不管是否为root user,简单的来说, Rootless 机制限制了 Root 账户的权限, 使其没有了对系统的完全控制权。

SIP技术主要分为文件系统保护、运行时保护、内核扩展签名。
  1. 文件系统保护,主要是通过沙盒机制限制root权限;
  2. 运行时保护,主要就是保护关键进程无法被进程代码注入,挂调试器以及内核调试等;
  3. 内核扩展签名,所有的第三方kext必须被安装到/Library/Extensions,并强制使用签名。
Mac系统自10.11之后,SIP/Rootless权限默认是enable,因而产生的影响有以下几点:
  1. 禁止直接对 /System, /bin, /sbin, /usr 目录的修改(/usr/local 目录除外). 只有通过苹果开发者认证的 app 才有权限对其修改.
  2. 禁止注入系统进程. 某些需要注入系统进程(finder, messages 等等系统级别的进程)的程序, debugger 无法使用了.
  3. 禁止加载内核扩展(kexts), 除非它们被苹果开发者正确的签名
    这些修改最明显的好处就是: 恶意 app 无法通过用户授权的方式从而获得所有系统权限了。
SIP保护目录.png
临时关闭SIP/Rootless权限保护

很多第三方辅助工具(例如:Cocoapods、Homebrew),因为安装时需要写入系统目录(/bin, /sbin,/usr/bin等)或从系统目录执行脚本,故升级到10.11以后,这些工具就无法使用。例如,/usr/bin这个目录被rootless保护后, 安装pod命令需要改为sudo gem install -n /usr/local/bin cocoapods 在这些第三方工具未推出适应OSX 10.11的版本时,有必要临时关闭SIP以确保开发工具的使用。如何临时关闭SIP呢?请看下图:

关闭SIP.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如果你看完书中的所有例子,你很可能已经做完你的实验和在已经越狱的iPhone上的研究。因为和许多人一样,几乎所有的...
    fishmai0阅读 16,310评论 2 42
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,499评论 9 467
  • 1.Linux下如何用命令查看实时日志(完整命令) tail -f 路径.log查看前多少行 tai-200f 路...
    qianyewhy阅读 2,316评论 0 11
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,930评论 25 708
  • 读的什么书:销售就是要会提问第四章客户关系管理 阅读时间:2小时 阅读中碰到的问题: 被脑海里突然出现的观点给打断...
    A科立电气华强阅读 534评论 0 0