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

Sonoma系统下Script Editor运行带管理员权限AppleScript无法使用TouchID

解决Sonoma中AppleScript do shell script 无法使用TouchID验证sudo的问题

问题根源

Sonoma系统下,AppleScript的do shell script "..." with administrator privileges调用的是macOS内置的Authorization Services框架,而非终端里直接触发的sudo流程——这就是为什么你修改pam.d/sudo和sudo_local后终端可用TouchID,但Script Editor里不行的原因。

解决方案

方案1:修改Authorization Services的PAM配置(推荐)

这个配置会让所有依赖Authorization Services的系统验证弹窗(包括Script Editor、系统偏好设置权限验证等)都支持TouchID:

  1. 备份原配置文件(避免改错无法恢复):
    sudo cp /etc/pam.d/authorization /etc/pam.d/authorization.bak
    
  2. 编辑配置文件:
    sudo nano /etc/pam.d/authorization
    
  3. 在文件开头的auth规则段,添加一行:
    auth sufficient pam_tid.so
    
    可以把它放在auth optional pam_krb5.so这类行的上方,保存退出(nano里按Ctrl+O回车,再Ctrl+X)。
  4. 如果修改时提示权限不足,说明系统完整性保护(SIP)限制了修改:
    • 重启Mac,按住Command+R进入恢复模式
    • 打开终端,输入csrutil disable后重启
    • 修改完成后,再次进入恢复模式,输入csrutil enable重启开启SIP

方案2:在AppleScript中直接调用sudo(绕过Authorization Services弹窗)

去掉with administrator privileges参数,让sudo直接触发自身的验证流程(走你已经配置好的pam.d/sudo规则):

do shell script "sudo echo 'Hello'"

这种方式会弹出sudo的验证窗口(支持TouchID),确保你的账号是管理员账号即可正常使用。

注意事项

  • 修改系统PAM配置有风险,操作前一定要备份原文件
  • 开启SIP是保护系统安全的重要设置,修改完成后务必重新开启

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:01:08