mac上你从网页、QQ或微信等下载一个sh脚本,不要忙着急着去执行,要不然会报下面的错误

sudo: unable to execute ./sh/ijiami-clang-install.sh: Operation not permitted

遇到这个问题该咋办,别着急我们来剖析一下是为什么原因,ls -l一下
得到下面列表,都有执行权限,等等后面为啥有个@,百度可知这是个隐藏属性.

ijm@172-10-20-151 sh % ls -l
total 64
-rw-r--r--@ 1 ijm  staff  2437  4 14 14:36 Fastfile
-rwxr-xr-x@ 1 ijm  staff  6312  4 16 10:33 ijiami-clang-install.sh
-rwxr-xr-x@ 1 ijm  staff   830  4 16 10:33 ijiami-clang-uninstall.sh
-rwxr-xr-x@ 1 ijm  staff  9337  4 14 14:34 ijiami-config.sh
-rwxr-xr-x@ 1 ijm  staff   588  4 16 10:33 ijiami-version.sh
drwxr-xr-x@ 5 ijm  staff   160  4 16 10:34 pbx_config

为了一探究竟,我们用ls -l@看一下有哪些隐藏属性

total 40
-rwxr-xr-x@ 1 ijm  staff  2658  3  4 18:46 ijiami-build.sh
    com.apple.lastuseddate#PS      16
    com.apple.macl      72
    com.apple.quarantine      21
-rwxr-xr-x@ 1 ijm  staff  6029  2  2 15:02 ijiami-clang-install.sh
    com.apple.lastuseddate#PS      16
    com.apple.macl      72
    com.apple.quarantine      21
-rwxr-xr-x@ 1 ijm  staff   830  1 28 17:37 ijiami-clang-uninstall.sh
    com.apple.macl      72
    com.apple.quarantine      21
-rwxr-xr-x@ 1 ijm  staff   588  1 28 17:37 ijiami-version.sh
    com.apple.macl      72
    com.apple.quarantine      21
drwxr-xr-x@ 5 ijm  staff   160  1 19 19:12 pbx_config
    com.apple.quarantine      21 

有隐藏属性com.apple.quarantine,这个是啥玩意,我们一探究竟.搜索得知
macOS Catalina 加入了一项名为 GateKeeper 的保护机制,从互联网上下载来的文件,会被系统打上 com.apple.quarantine 标志,也就是免疫隔离,本意是为了避免应用威胁,从而加强系统安全性。
坑爹啊只能把这个隐藏属性给干掉啊

sudo xattr -r -d com.apple.quarantine +目录路径

参考文章:https://juejin.cn/post/684490...

03-05 23:49