当前位置: 首页 > news >正文

macOS 中的 Rootless 机制

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一、前因

苹果从 OS X El Capitan 10.11 系统开始使用了 Rootless 机制,可以将该机制理解为一个更高等级的系统的内核保护措施,系统默认将会锁定 /system/sbin/usr 这三个目录。

二、后果

Rootless 机制虽然在一定程度上增加了系统的安全性,但作为一名开发人员会经常的操作 /usr 这个目录,这个时候你会发现你使用的任何命令都会提示没有操作权限,即使使用 root 权限也不行。

比如咱们在 /usr 目录下新建一个目录 myl,命令及提示如下:

$ sudo mkdir myl
Password:
mkdir: myl: Operation not permitted

从上面的代码可以看出,即使我们使用了 sudo 授权,还是没操作权限。下面咱们来介绍怎样关闭和开启 Rootless 机制。

三、开关 Rootless

关闭和开启 Rootless 非常简单,方法如下:

重启 Mac,听到开机启动声后按下 Command+R,进入恢复模式,在上面的菜单实用工具中找到并打开 Terminal(如果顶部没出现菜单,请继续重启^_^)。输入如下命令:

1. 关闭 Rootless

$ csrutil disable

2. 开启 Rootless

$ csrutil enable

执行完命令后,重启电脑即可生效。为了系统的安全,建议大家平时都开启 Rootless,只有需要时才暂时关闭。


本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。 马燕龙个人博客:http://www.mayanlong.com 马燕龙个人微博:http://weibo.com/imayanlong 马燕龙Github主页:https://github.com/yanlongma

转载于:https://my.oschina.net/imayanlong/blog/788452

相关文章:

  • python环境搭建-设置PyCharm软件的配色方案和Python解释器
  • mod_fastcgi和mod_fcgid的区别
  • [摘录]第六章 用负激励促进新陈代谢
  • 4. 路由到控制器 - Laravel从零开始教程
  • 给MVC来一个谬论
  • linux 查看 cpu 和内存的命令 - top
  • JDK 环境搭建
  • Windows下编译使用Aliyun OSS PHP SDK
  • KNN算法与Kd树
  • 2D空间中求一点是否在多边形内
  • ceph基础操作记录
  • zabbix企业应用之定时获取监控数据做报表
  • SQLSERVER之“sqlserver索引、视图、存储过程和触发器的使用”
  • 编译动态库与静态库的注意事项和方法
  • 《写给大忙人的hadoop2》读书笔记(一)大数据定义
  • 《Java编程思想》读书笔记-对象导论
  • Angular 响应式表单 基础例子
  • Brief introduction of how to 'Call, Apply and Bind'
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • miaov-React 最佳入门
  • Python 基础起步 (十) 什么叫函数?
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 初识 webpack
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 前端存储 - localStorage
  • 一起参Ember.js讨论、问答社区。
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • # C++之functional库用法整理
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (a /b)*c的值
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (C语言)球球大作战
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (转)大道至简,职场上做人做事做管理
  • .NET CLR Hosting 简介
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .netcore 获取appsettings
  • .net打印*三角形
  • .NET多线程执行函数
  • .Net面试题4
  • .Net组件程序设计之线程、并发管理(一)
  • @Async注解的坑,小心
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [C#] 我的log4net使用手册
  • [EFI]DELL XPS13 9360电脑 Hackintosh 黑苹果efi引导文件
  • [ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: ‘tenant_name‘
  • [ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • [java后端研发]——文件上传与下载(2种方式)
  • [js]- 两个对象的合并(Object.assign)
  • [json]定义、读写
  • [linux] Key is stored in legacy trusted.gpg keyring