MacOS中创建Sublime Text3快捷方式返回Operation not permitted的原因及解决

 

在类Unix系统中我们可以很随心的添加一些程序在终端里快捷方法,比如将一些常用的工具放在/usr/bin下面

Sublime Text3是一个小巧精致而又功能强大的程序,而且本猫也安装了Swift语言的语法包,对于一些天马行空一闪而过的的创意再也不用动用Xcode了.所幸的是在Sublime Text的程序包中作者早就添加了终端支持,其相对目录为:

Contents/SharedSupport/bin/subl

 

我们只要将该文件做一个软连接到/usr/bin里就可以实现对任何文件快速用sublime text打开了.指令如下:

ln -s "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl" /usr/bin/subl

 

可是结果却是:操作不被允许:

ln: /usr/bin/subl: Operation not permitted

 

使用管理员sudo命令,依旧失败!

原来MacOS 10.11开始apple引入了Rootless机制,你再也不能随心所欲的改写很多关键路径了,就算你是Root用户也不行,除非是Apple自身签名的软件(含命令行工具)才可以!用Apple的话来说:

Rootless机制将成为对抗恶意程序的最后防线

有兴趣的童鞋可以参考下面的链接:

在 OS X 10.11 中引入的 Rootless 是如何实现的?有什么优势与缺陷?

Mac OS X 11中的/usr/bin 的“Operation not permitted”

如果要关闭Rootless必须重启Mac进入恢复模式,然而关闭它意味着你的MacOS安全大门变得有些薄弱,这并不是什么好消息!!!!!

那么有没有什么办法即可以不用关闭Rootless又可以设置Sublime Text3的快捷方式呢!?

答案是:必须的!!!

我们只需要将其路径添加到/usr/local/bin下即可,Rootless并没有限制该目录的修改,而且bash也会从该目录中寻找可执行的bin!YES!!!

问题得以完美解决!以后打开任何swift文件,我们只需要在终端的任意路径中敲:

subl xxx.swift

 

即可!骚年,你值得拥有!!! ;)

 原文:https://blog.csdn.net/mydo/article/details/52815749
上一篇:MacOSX 上的 Rootless机制 系统集成保护(System Integrity Protection)


下一篇:一天一个开发技巧:如何基于WebRTC建立P2P通信?