双击文件提示“无法打开,因为没有权限”是因执行权限被禁用;可通过访达“显示简介”图形化设置或终端chmod命令启用权限,对下载的app还需用xattr清除gatekeeper隔离属性。

当你双击一个文件却提示“无法打开,因为没有权限”时,说明该文件的执行权限被禁用,系统拒绝运行它——这在脚本、可执行程序或从网络下载的二进制文件中尤为常见。
通过访达“显示简介”图形化设置打开权限
这是最直观、适合非技术用户的操作方式,适用于单个文件或少量文件。
1. 在访达中选中目标文件(如 install.sh、run.app 或下载的 ffmpeg 二进制),右键→“显示简介”。
2. 滚动到底部,展开“共享与权限”区域;若看不到该区域,点按右侧的三角形图标 ▶。
3. 点击右下角的锁形图标 ?,输入管理员密码解锁权限编辑功能。
4. 在“名称”列表中找到你的用户名(或“群组”“所有人”),点击其右侧权限下拉菜单,选择【读与写】——仅设为“只读”仍无法执行文件。
5. 点按窗口底部的“应用到包含的项目”按钮,确认弹窗提示。此步对单个文件非必需,但可避免后续误操作导致权限回退。
用终端命令批量启用执行权限
当你要处理多个脚本、自动化部署或修复整个目录下的可执行文件时,终端命令更高效可靠。
方法一:为单个文件添加执行权限
打开终端,输入:chmod +x /路径/到/文件名(例如:chmod +x ~/Downloads/start-server.sh)。
方法二:递归赋予整个文件夹内所有可执行扩展名的文件权限
先定位到父目录:cd /路径/到/文件夹;再运行:find . -type f \( -name "*.sh" -o -name "*.py" -o -name "configure" \) -exec chmod +x {} \;。
注意:【不要对 .txt、.pdf 或图片文件执行 chmod +x】——虽不会损坏文件,但会污染权限位,且可能触发安全软件告警。
方法三:验证权限是否生效
输入:ls -l 文件名,观察输出最左侧10位字符中,第4位(所有者)、第7位(群组)、第10位(其他人)是否出现 x。例如 -rwxr-xr-- 表示所有者有执行权,群组和其他人无写入但可执行。
绕过“已损坏,无法打开”的Gatekeeper限制
某些从互联网下载的App或工具包,即使有执行权限,也会被macOS阻止启动,并弹出“已损坏,无法打开”警告——这是Gatekeeper的隔离属性(quarantine attribute)在起作用,不是权限问题。
第一步:清除隔离属性
在终端中运行:xattr -d com.apple.quarantine /路径/到/文件名(如:xattr -d com.apple.quarantine ~/Applications/obsidian.app)。
第二步:若仍报错,检查是否被系统标记为恶意
运行:spctl --assess --verbose=4 /路径/到/文件名,若返回 rejected,需手动在“系统设置→隐私与安全性→安全性”中点击“仍要打开”。
这一步必须在首次运行前完成,之后双击即可正常启动。











