跳到文章正文
Grok 实用教程

Grok Build权限怎么设置?Ask模式、deny规则与沙箱边界检查

区分Grok Build的Ask、Auto和Always-approve模式,添加针对性deny…

Grok Build每次调用工具都询问,不能简单用Always-approve消除所有提示。权限模式决定工具调用是否获准,沙箱决定获准调用能接触哪些文件与网络。本文为练习仓库建立清晰边界,重点是理解当前状态和规则冲突,不把几行配置说成完整隔离方案。

Grok Build权限怎么设置?Ask模式、deny规则与沙箱边界检查
Grok Build权限怎么设置?Ask模式、deny规则与沙箱边界检查

第一步:确认当前模式与配置层

官方默认Ask,对尚未允许的动作提示。Auto会由分类器自动批准被认为安全的工具,危险动作仍可能提示,且deny与Hooks继续生效。Always-approve会自动批准调用,但显式deny和PreToolUse Hooks仍可限制。先查看当前模式,不凭提示次数推断它是哪一种。

用户默认permission_mode放在~/.grok/config.toml的ui字段,不能放进项目.grok/config.toml来设置该用户默认值。修改前备份已有配置,检查是否受managed或requirements政策控制。不要用整份示例覆盖团队已经存在的模型与环境设置。

第二步:先用Ask建立可观察的流程

[ui]
permission_mode = "ask"

将字段合并到正确用户配置层,再按客户端实际加载方式重新确认状态。Ask不表示所有命令都禁止,已允许的动作可能直接运行;它也不等于只读沙箱。首次练习只要求列出仓库说明和文件位置,不要求安装依赖、发送网络请求或修改代码。

请只阅读练习仓库README和目录结构,报告项目入口及需要我确认的事项。不安装、不写文件、不提交、不推送。如果工具调用被拒绝,说明具体调用与原因,不切换权限模式继续执行。

第三步:为明确禁止的动作加deny

[permission]
rules = [
  { action = "allow", tool = "read" },
  { action = "deny", tool = "bash", pattern = "git push*" }
]

示例只表达允许读取与禁止一类Shell推送前缀,不能当作完整只读策略。真实命令可能通过别的工具或参数形式完成,需要结合实际工具类型、管理员政策和沙箱验证。不要为图方便写git *的allow,它会把范围扩大到并非只读的操作。

官方说明deny优先于allow。排查冲突时同时查看用户、命令行和托管规则,不能只看最后写入的文件。–allow和–deny也可以在单次调用中指定模式,但首次流程应先记录现有状态,不反复叠加参数让有效规则变得不可解释。

第四步:了解快捷切换而不误触

Shift+Tab会在Normal、Plan、可用时的Auto以及Always-approve之间切换。/auto只有相关功能开放时才出现,不能因没有此命令就怀疑登录失败。Auto与Always-approve是模式切换,不会叠加成更强的双重批准。切换后应阅读状态显示再继续。

Plan模式又是独立维度,规划时编辑工具仍受限制,计划审阅也不会被自动批准模式省略。用户配置中的旧approval_mode或yolo键可能仍有效,但同时存在时permission_mode优先。遇到行为不一致,应先清点旧配置而不是再添一个相反字段。

第五步:用无副作用任务验收

先验证只读任务的提示与结果符合预期,再通过当前客户端提供的状态或规则反馈核对deny是否加载;不要为了测试拒绝规则,向真实远程仓库执行推送。若缺少安全的检查方式,记录未验证部分,不把配置文件存在当成所有路径都已阻断。

验收:有效配置层与模式;是否有托管限制;读取任务的实际工具;是否出现写入请求;deny冲突处理;沙箱范围;回滚文件。规则未生效和业务失败分开记录。

结束后恢复不需要的试验配置,保留必要规则与说明。减少无关提示应靠准确任务范围和审阅过的规则,不能用全自动模式替代权限设计。后续换到headless或企业部署时再核对对应政策,不把本地交互结果直接推广到所有运行环境。

官方资料

资料核对日期:2026年11月12日。

本文地址:https://www.163264.com/20659