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

macOS Ventura中Shell脚本无法通过crontab执行的求助

macOS Ventura下crontab调用Shell脚本提示"Operation not permitted"的解决方法
  • 给相关程序添加完整磁盘访问权限
    macOS Ventura的隐私控制会限制cron和bash的磁盘访问权限,按以下步骤操作:

    1. 打开「系统设置」→「隐私与安全性」→「完整磁盘访问权限」
    2. 点击左下角锁图标解锁,点击+号,通过「前往」→「前往文件夹」分别找到/bin/bash和/usr/sbin/cron,添加到权限列表中
    3. 重启终端或电脑使权限生效
  • 修正crontab中的路径写法
    路径包含空格时,务必用引号包裹或正确转义空格,两种写法任选其一:

    # 用引号包裹完整路径
    * * * * * "/Users/nadnosliw/Documents/4 Project Folders/Shell Script Project Files/cronjob_test.sh"
    # 转义空格
    * * * * * /Users/nadnosliw/Documents/4\ Project\ Folders/Shell\ Script\ Project\ Files/cronjob_test.sh
    

    同时确保脚本开头的shebang为#!/bin/bash,与系统默认Shell匹配

  • 确认脚本权限与所有者
    重新执行赋予执行权限的命令:

    chmod +x "/Users/nadnosliw/Documents/4 Project Folders/Shell Script Project Files/cronjob_test.sh"
    

    用ls -l命令检查脚本所有者是否为当前用户,确保无权限归属问题

  • 测试基础cron环境
    先创建极简测试脚本验证cron是否正常工作:

    1. 新建test_cron.sh,内容为:
      #!/bin/bash
      echo "Cron test success: $(date)" >> ~/cron_test.log
      
    2. 赋予执行权限后添加到crontab,若能生成~/cron_test.log,说明cron环境正常,问题出在原脚本或路径配置
  • 重启cron服务
    执行以下命令重启cron服务,确保权限变更生效:

    sudo launchctl stop com.vix.cron
    sudo launchctl start com.vix.cron
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:40:18