root 账户在 OSX10.11 下竟然不能修改/usr/bin 目录

2015-09-30 22:39:00 +08:00
 vonnyfly
大家可以试一下,在 /usr/bin 目录下创建删除文件都不行,貌似是 OSX 的系统完整性保护功能,要关掉还不容易。

像 cocopods 就不能安装成功。
$ sudo gem install cocoapods
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
4619 次点击
所在节点    macOS
9 条回复
vonnyfly
2015-09-30 22:43:52 +08:00
找到原因了, OSX10.11 开启了 rootless 模式。。。

解决办法:
sudo nvram boot-args="rootless=0"; sudo reboot

当然,对于 cocoapods 可以这样:
sudo gem install -n /usr/local/bin cocoapods
vonnyfly
2015-09-30 22:44:10 +08:00
vonnyfly
2015-09-30 22:59:38 +08:00
如果以上方法都不行就进入恢复模式运行: csrutil disable.
够坑爹!
链接: https://www.quora.com/How-do-I-turn-off-the-rootless-in-OS-X-El-Capitan-10-11
yksoft1
2015-09-30 23:45:09 +08:00
感觉这种在内核里再加一层保护的方式,在日系安卓上 10 年就用上了,不解开那个,就算 Android 的 root 漏洞没有修复,也无法 root
kqz901002
2015-10-01 13:54:48 +08:00
@yksoft1 10 年前有 Android ?
TonyMonster000
2015-10-02 09:27:13 +08:00
@kqz901002 他是不是想说 2010 年啊……
kqz901002
2015-10-02 09:29:01 +08:00
@TonyMonster000 好像是
musicq
2015-10-03 01:48:41 +08:00
我在做软连接时也遇到这个问题,但是

http://apple.stackexchange.com/questions/196224/unix-ln-s-command-not-permitted-in-osx-el-capitan-beta3

这个答案里好像说不推荐这种做法,要把用户安装到 /usr/bin/里,所以,这要怎么做。。。
vonnyfly
2015-10-04 10:53:08 +08:00
@musicq 没有什么推不推荐的,明白原理就好。如果你是一个开发者,肯定关掉系统完整性保护好些,否则以后麻烦多着呢。
如果你只是一个 MAC 用户,当然不推荐你修改系统功能。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/224901

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX