Jenkins作业在macOS代理上报错:Operation not permitted
macOS Jenkins代理SSH启动后作业报"Operation not permitted"的解决办法
1. 给SSH用户配置隐私权限
- 打开macOS系统设置,进入「隐私与安全性」
- 左侧选择「完全磁盘访问权限」,点击右侧加号,添加Jenkins代理使用的SSH登录用户,或者直接添加
sshd进程 - 同时检查「文件和文件夹」权限,确保作业需要访问的目录已授权
2. 调整系统完整性保护(SIP)(谨慎操作)
如果作业需要访问受SIP保护的目录(比如/System、/usr下的部分路径),可临时关闭SIP:
- 重启macOS,按住
Command + R进入恢复模式 - 打开终端,执行命令:
csrutil disable - 重启系统后测试作业是否正常
- 作业正常后,建议重新开启SIP:重复步骤1,执行
csrutil enable
3. 更换Jenkins代理启动方式
- 避免用普通用户通过SSH直接启动代理,创建专门的Jenkins用户并赋予必要权限
- 或者将Jenkins代理注册为macOS系统服务,通过
launchd管理,获得更稳定的权限上下文
4. 检查作业命令的权限范围
- 确认作业中执行的命令(比如
mkdir、cp等)是否在SSH用户的权限范围内 - 如果涉及
sudo操作,给SSH用户配置免密sudo权限:用visudo编辑/etc/sudoers文件,添加一行[用户名] ALL=(ALL) NOPASSWD: ALL
内容的提问来源于stack exchange,提问作者聂超群
相关产品推荐
相关产品推荐

