[Bug] macOS 下 TUN 已成功启用,但每次仍重复执行 osascript 提权并报 Operation not permitted
Author: andrew-zyfCreated Apr 5, 2026Updated Sep 16, 2026
Labelsbugmore info needed
Description
Verify steps
- 我已在标题简短的描述了我所遇到的问题
- 我已在 Issue Tracker 中寻找过我要提出的问题,但未找到相同的问题
- 我已在 常见问题 中寻找过我要提出的问题,并没有找到答案
- 这是 GUI 程序的问题,而不是内核程序的问题
- 我已经关闭所有杀毒软件/代理软件后测试过,问题依旧存在
- 我已经使用最新的测试版本测试过,问题依旧存在
操作系统
MacOS
系统版本
macOS 26.0 (Darwin 25.4.0, Apple Silicon)
发生问题 clash-party 版本
1.9.4
描述
在 macOS 上启用 TUN 后,Clash Party 实际上已经成功启动 TUN,并且 mihomo 进程已经以 root 身份运行,sidecar/mihomo 也已经是 root:admin 且带 +sx。
但是应用后续仍会重复执行下面这条提权命令,并弹出报错:
osascript -e 'do shell script "chown root:admin '\''/Applications/Clash Party.app/Contents/Resources/sidecar/mihomo'\'' && chmod +sx '\''/Applications/Clash Party.app/Contents/Resources/sidecar/mihomo'\''" with administrator privileges'报错内容:
Command failed: osascript -e do shell script "chown root:admin '/Applications/Clash Party.app/Contents/Resources/sidecar/mihomo' && chmod +sx '/Applications/Clash Party.app/Contents/Resources/sidecar/mihomo'" with administrator privileges
0:209: execution error: chown: /Applications/Clash Party.app/Contents/Resources/sidecar/mihomo: Operation not permitted (1)我的判断是:
- TUN 实际已经成功开启
- 但 macOS 分支里的权限检查逻辑仍返回“未授权”,导致重复执行
grantTunPermissions() - 因此出现“功能正常,但仍不断重复提权并报错”的现象
重现方式
- 在 macOS 上安装 Clash Party 1.9.4
- 开启 TUN 模式
- 按提示授予管理员权限
- TUN 实际已可用
- 之后再次启动应用或重新触发相关流程时,仍会再次执行
osascript + chown/chmod - 系统报
Operation not permitted
实际结果
- TUN 已经生效
mihomo以 root 身份运行- 流量已经通过 TUN 接管
- 但应用仍重复提权,并弹出报错
期望结果
如果 macOS 下:
sidecar/mihomo已经是正确权限- 或者
mihomo已经以 root 启动 - 或者 TUN 已验证成功
则不应再次执行 osascript -> chown/chmod
额外信息
我本地确认到的状态:
sidecar文件权限已经正确:
-rwsr-sr-x 1 root admin ... mihomo
-rwsr-sr-x 1 root admin ... mihomo-alpha
-rwsr-sr-x 1 root admin ... mihomo-smart- 当前运行中的
mihomo已经是 root:
root ... /Applications/Clash Party.app/Contents/Resources/sidecar/mihomo -d ...- app 日志里多次出现:
TUN permissions validated successfully- core 日志里已经有大量 TUN 接管流量的记录,例如
198.18.0.1和fdfe:dcba:9876::1
怀疑的问题位置
我从 app.asar 中看到相关逻辑大致是:
- macOS/Linux 分支的高权限检查直接跳过并返回
false - 随后又调用
grantTunPermissions() grantTunPermissions()在 macOS 上会执行:
do shell script "chown root:admin ... && chmod +sx ..." with administrator privileges看起来像是 macOS 的权限判断条件有 bug,导致明明已经成功,仍然继续重复修复。
如果需要,我可以继续补充更多日志片段。
Source: mihomo-party-org/clash-party