📖 5.1 权限模型
OpenCode 的权限系统控制 AI 可以执行的操作。权限通过 permission 字段配置, 支持三种动作:allow(允许)、ask(询问)、deny(拒绝)。
⚠️ 5.2 必须拦截的危险操作
🚨 以下命令必须配置为 deny:
- rm * , rm -rf * - 强制删除文件和目录
- rmdir * - 删除目录
- sudo rm * - 管理员权限删除
- dd * - 磁盘操作,可能导致数据丢失
- mkfs * - 格式化文件系统
- fdisk * - 磁盘分区工具
- shutdown * , reboot - 系统关机/重启
- > /dev/* - 直接写入设备
- DROP DATABASE * , DROP TABLE * - 删除数据库
- (:){ :|:& };: - 著名的 fork 炸弹
⚙️ 5.3 权限配置示例
"permission": {
"read": {
"*": "allow",
"*.env": "deny",
"*.env.*": "deny",
".env.example": "allow"
},
"write": "allow",
"edit": "allow",
"bash": {
"*": "allow",
"rm *": "deny",
"rm -rf *": "deny",
"sudo *": "ask",
"git push --force *": "ask",
"docker rm *": "ask"
},
"webfetch": "allow"
}
💡 建议询问的操作:
sudo、chown、kill -9、git push --force、docker rm 等可能影响系统的操作建议设为 ask。
✅ 本章小结
- 理解权限模型的三种动作
- 掌握必须拦截的危险操作
- 学会配置安全的权限策略