Mac OS X El Capitan系统完整性保护System Integrity Protection (SIP)
http://blog.csdn.net/yulimin/article/details/49992031
引言:前段时间经历了XCode编译器代码被注入的事件后,这次 Mac OS X El Capitan系统的升级,启用了更高的安全性保护机制:系统完整性保护System Integrity Protection (SIP),是By Design?还是巧合呢?
关于 系统完整性保护System Integrity Protection (SIP),可以从Apple官网下载下来学习,从第29页到54页 http://devstreaming.apple.com/vi ... y_and_your_apps.pdf
关键点:
1、Security policy applying to every process, including privileged code running unsandboxed
2、Extends additional protections to system components on disk and at runtime
3、System binaries can only be modified by Apple Installer and Software Update, and no longer permit runtime attachment or code injection
实际上从Mac AppStore下载的应用是不受影响的;如果不是则可能会受影响,比如:
修改系统文件,安装文件到系统目录中,观察系统进程内存,注入代码到系统进程中等
内核会直接中断这些破坏性的工作,哈哈哈。
所以对于像 /System /bin /usr /sbin 仅仅供系统使用,开发者或者应用程序则无法直接使用,而使用 ~/Library /usr/local /Applications,升级之后,那些文件将被移出去。
注入代码到系统进程中等同于修改硬盘上的可执行文件,所以会进行各种安全检查确保安全可信,比如签名检查
整个机制主要从三方面入手:
1、文件系统保护(Filesystem protections)
2、运行时保护(Runtime protections)
3、内核扩展签名(Kernel extensions)
总结:
1、新的安全策略机制适用于每一个进程
2、默认下系统启用SIP系统完整性保护机制,无论是对于硬盘还是运行时的进程
限制对系统目录的写操作
阻止在运行时附加或注入代码到系统进程中
3、第三方安装的内容必须移入系统目录
4、SIP系统完整性保护机制可以在Recovery OS状态下进行更改,也就是留有余地啊哈哈
如何禁用SIP系统完整性保护机制?
1、重新启动操作系统;
2、按住Command + R键;
3、菜单“实用工具” ==>> "终端" ==>> 输入 csrutil disable 回车
执行成功后,返回信息如下:
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
4、这样,更改的配置保存到NVRAM中,对整台机器生效,重新启动即可
如何查看SIP系统完整性保护机制?
命令行终端
$ csrutil status
System Integrity Protection status: enabled.
$ csrutil clear / enable / disable 只能在 恢复模式下使用
在禁用掉SIP后,查看状态信息如下
$ csrutil status
System Integrity Protection status: enabled (Custom Configuration).
Configuration:
Apple Internal: disabled
Kext Signing: disabled
Filesystem Protections: disabled
Debugging Restrictions: disabled
DTrace Restrictions: disabled
NVRAM Protections: disabled
This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.
那么将之前升级而被移走的文件从 /Library/SystemMigration/History 对应移回到原来的目录下,应用程序就可以使用了。
如何对被移出的应用程序进行恢复?
比如Mobility Client,进入终端,并切换到 root 用户下,然后
su -
cd /Library/SystemMigration/History/Migration-*/QuarantineRoot/usr/libexec
mv MobilityClient/ /usr/libexec/
再启动 Mobility Client 就可以了,不需要重新安装,就这么简单!
Mac OS X El Capitan系统完整性保护System Integrity Protection (SIP)的更多相关文章
- [转]Mac OS X El Capitan(10.11)显示隐藏文件命令失效解决方法
在Mac全新的系统El Capitan中,原先的显示系统中所有的隐藏文件的指令似乎失效了,只有重启以后才能显示,其实还有一个更简单的办法: 先在终端输入: defaults write com.app ...
- MAC OS X El CAPITAN 搭建SPRING MVC (1)- 目录、包名、创建web.xml
一. 下载STS(Spring Tool Suite) 官方地址:http://spring.io/tools/sts 下载spring tool suite for mac 最新版本.这个IDE是很 ...
- 关闭 OSX 10.11 SIP (System Integrity Protection) 功能
关闭 OSX 10.11 SIP (System Integrity Protection) 功能 来源 https://cms.35g.tw/coding/%E9%97%9C%E9%96%89-os ...
- mac 关闭系统完整性保护 SIP(System Integrity Protection)的方法
在 OS X El Capitan 中有一个跟安全相关的模式叫 SIP(System Integrity Protection ) ,它禁止让软件以 root 身份来在 mac 上运行,并且对于目录 ...
- Mac制作U盘系统(OS X El Capitan)教程
前言部分 重装过Mac OS X系统的人应该都深有体会,通过自带的重新安装 Mac OS X功能恢复系统(开机时按Command+R) 要耗费10几个小时才能完成(请求苹果国外服务器),但如果通过U盘 ...
- How to Disable System Integrity Protection (rootless) in OS X El Capitan
mac在10.11之后增加了一个功能,号称"System Integrity Protection, often called rootless",有了这个功能,以下目录的东西都不 ...
- 【Xamarin挖墙脚系列:关闭 OS X El Capitan 中 SIP 安全设置功能】
比如需要修改内核配置文件: com.apple.Boot.plist 那么我们需要解锁权限. 禁止SIP模式,那么就可以修改此文件了. 在 OS X El Capitan 中有一个跟安全相关的模式叫 ...
- 如何关闭 Mac OS X EI Capitan 系统文件保护
在修改 Mac OS X EI Capitan 系统的某些系统文件的过程中,你可能会遇到即使你加了 sudo 以管理员身份去操作页会被拒绝, 这是一个名为 SIP(System Integrity P ...
- 最详细的制作正式版10.11 OS X El Capitan 安装U盘的方法
原帖地址:http://bbs.feng.com/read-htm-tid-10036487.html 一.准备工作: 1.准备一个 8GB 或以上容量的 U 盘,确保里面的数据已经妥善备份好(该过程 ...
随机推荐
- Git 时光穿梭鸡 删除文件 以及批量删除文件
先添加一个新文件test.txt到Git并且提交: 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了 $ rm test.txt 这个时候,Git知道你删除了文件, 因此,工作 ...
- java利用URL发送get和post请求
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- axios发送两次请求原因及解决方法
axios发送两次请求原因及解决方法 最近Vue项目中使用axios组件,在页面交互中发现axios会发送两次请求,一种请求方式为OPTIONS,另外一种为自己设置的. 如图: 什么是CORS通信? ...
- 第一个Three.js程序——动手写一个简单的场景
三维场景基本要素: 步骤: 代码: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- Django之Form组件归类
目录: Django内置字段 Django内置插件 常用选择插件 创建Form类时,主要涉及到 [字段] 和 [插件],字段用于对用户请求数据的验证,插件用于自动生成HTML; Field requi ...
- hdu5709Claris Loves Painting主席树 奇妙的DFS序
先不考虑层数限制 一棵树上每个点有个颜色,问一棵子树的颜色数 感觉简单多了是吧 考虑每个点的贡献:自己到根的路径上的一个包含自己的连续段 观察最顶端的点的父亲: 它满足有了额外的同色孩子(咦) 这一条 ...
- css中如何设置透明度
怎样在CSS样式中设置背景的透明度,下面一个具体的实例.把类为box的层设为透明.<div class="box"></div><style>. ...
- SpringBoot---核心---日志配置
- (转)nginx应用总结(2)--突破高并发的性能优化
原文:http://www.cnblogs.com/kevingrace/p/6094007.html 在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题. ...
- DevExpress GridControl 控件二表连动
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...