LaunchAgent执行rsync脚本报错Operation not permitted求助
解决方案
授予完整磁盘访问权限
打开「系统设置」→「隐私与安全性」→「完整磁盘访问」,解锁后将/bin/sh(或直接添加你的rsync2server.sh脚本)加入列表并勾选允许。Ventura的隐私机制会限制后台进程访问用户文件夹,这是常见的权限触发点。确保脚本具备执行权限
在终端运行:chmod +x /Users/pat/Documents/scripts/rsync2server.sh修正LaunchAgent配置文件
检查~/Library/LaunchAgents/pat.rsync2server.plist的关键配置:- 明确指定shell与脚本路径:
<key>ProgramArguments</key> <array> <string>/bin/sh</string> <string>/Users/pat/Documents/scripts/rsync2server.sh</string> </array> - 配置完整的环境变量PATH,包含
rsync等命令的路径(可通过终端which rsync获取具体路径):<key>EnvironmentVariables</key> <dict> <key>PATH</key> <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string> </dict> - 设置脚本工作目录,避免路径依赖问题:
<key>WorkingDirectory</key> <string>/Users/pat/Documents/scripts</string>
- 明确指定shell与脚本路径:
调整电源与触发设置
Ventura休眠时会严格限制后台进程,建议将脚本设置为夜间特定时间(系统处于唤醒状态)执行,而非休眠过程中。可通过StartCalendarInterval精确配置执行时间,同时检查「系统设置」→「电池」→「选项」,关闭可能阻止后台运行的节能选项。重新加载配置并排查日志
先卸载旧配置再重新加载:launchctl bootout gui/503 ~/Library/LaunchAgents/pat.rsync2server.plist launchctl bootstrap gui/503 ~/Library/LaunchAgents/pat.rsync2server.plist查看系统日志定位具体问题:
log show --predicate 'process == "launchd" && message contains "pat.rsync2server"' --info尝试改用zsh执行脚本
若脚本依赖zsh专属语法,将plist中的/bin/sh替换为/bin/zsh,并将/bin/zsh也加入完整磁盘访问权限列表。
内容的提问来源于stack exchange,提问作者pferrel
相关产品推荐
相关产品推荐

