You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AppleScript执行tmutil遇权限问题:已授权仍报错求助

解决AppleScript中以root权限执行tmutil排除命令的问题

核心错误点修正

你之前的命令同时使用了sudo和with administrator privileges,这属于重复且冲突的操作——with administrator privileges参数本身就会让do shell script以root权限执行命令,完全不需要额外添加sudo,这是导致权限提示混乱的主要原因。

正确的AppleScript命令写法

直接移除命令中的sudo,保留with administrator privileges即可,同时注意给带空格的路径加引号避免解析错误:

do shell script "tmutil addexclusion -v \"/Volumes/iTunes Library\"" with administrator privileges

权限授予的正确对象

错误提示要求Terminal的全盘访问是误导性的,实际需要授予权限的是运行这个AppleScript的程序:

  • 如果在Script Editor中调试:打开「系统设置」→「隐私与安全性」→「全盘访问」,找到并勾选「Script Editor」,然后重启Script Editor。
  • 如果是导出的AppleScript应用:同样在「全盘访问」列表中找到你的应用并勾选,重启应用后生效。

外部Shell脚本的问题解决

如果要调用外部脚本,需注意两个关键点:

  1. 脚本开头必须添加正确的Shebang(比如#!/bin/zsh或#!/bin/bash),确保系统能识别执行环境。
  2. 脚本内不要加sudo,而是在AppleScript调用时通过with administrator privileges获取root权限。

示例脚本tmutil_exclude.sh:

#!/bin/zsh
tmutil addexclusion -v "/Volumes/iTunes Library"

AppleScript调用代码(替换为你的脚本实际绝对路径):

do shell script "/Users/你的用户名/脚本路径/tmutil_exclude.sh" with administrator privileges

额外验证步骤

  1. 先在终端手动执行sudo tmutil addexclusion -v "/Volumes/iTunes Library",确认命令本身能正常运行,排除路径错误或Time Machine状态问题。
  2. 如果仍有权限报错,尝试重置隐私权限:从「全盘访问」列表中移除对应的应用/Script Editor,重启Mac后重新添加权限。

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:06:11