深色模式
让 Grok Build 无人值守之前:权限模式、deny 规则和一个体检脚本
这是「Grok Build 实战」系列:Dato 和他的 Bot 把官方文档和别人的教程对着真实安装的 CLI(1.0.52)验证了一遍。本篇参考了:官方文档:Grok Build 概览。命令输出和截图都是我们自己做的,没有搬运原文;没做到的会写明。
很多人听说“无头模式 + --yolo 可以跑 CI”就直接上了。官方文档的建议其实更谨慎一点:全放行配 deny 规则或钩子。
三层东西别混
官方文档强调权限和沙盒是两个独立的控制[^1][^2]:
- 权限:决定一个工具调用要不要执行。
- 沙盒:限制一个已批准的调用能读写哪里、能不能联网(Linux 用 Landlock,macOS 用 Seatbelt),默认关闭。
权限模式(官方):default(只自动放行只读操作)、acceptEdits、auto(分类器自动放行安全工具)、dontAsk(只有预先批准的)、bypassPermissions(即全放行)。deny 规则永远优先于 allow,全放行下 deny 规则和钩子仍然生效[^1]。
我们写的规则
toml
# .grok/config.toml(项目级)
[permission]
rules = [
{ action = "deny", tool = "bash", pattern = "rm -rf *" },
{ action = "deny", tool = "bash", pattern = "git push*" },
{ action = "allow", tool = "bash", pattern = "npm test" },
]目录信任后(见《信任目录》),grok inspect 显示 3 条已加载:

注意:我们只验证了“规则被加载”,没有验证“模型想执行 rm -rf 时真的被拦”,因为没登录没法让它执行。官方说 deny 优先,我们照文档转述,未实测拦截效果。
沙盒五档(官方表格)
workspace:到处可读,只能写当前目录、~/.grok/、临时目录;允许联网。日常开发推荐。read-only:代码审查、审计用,禁联网。strict:只能读当前目录和系统路径,禁联网。陌生仓库用。- 另有
devbox(云开发机)和off(默认)。
两个限制官方写得很坦白[^2]:子进程联网限制只在 Linux 强制,macOS 对 read-only/strict 不生效;内置沙盒不会自动保护 ~/.ssh 这类路径,要自己写 deny 列表。启用:grok --sandbox workspace。
一个只读的开跑前体检脚本(我们写并实测)
它调用 grok inspect --json,检查四件事:目录是否被信任、规则文件数、权限规则数、技能数。不登录、不联网、不改任何文件。
bash
#!/bin/bash
cd "${1:-.}" || exit 2
J=$(grok inspect --json 2>/dev/null) || { echo "❌ grok 不在 PATH"; exit 2; }
python3 - "$J" <<'P'
import sys,json
d=json.loads(sys.argv[1]); bad=0
def say(ok,t):
global bad
print(("✅ " if ok else "❌ ")+t); bad+=(not ok)
say(d["projectTrusted"],"项目已信任")
say(len(d["projectInstructions"])>0,f"项目规则文件 {len(d['projectInstructions'])} 个")
pm=d["permissions"]; say(pm.get("loaded",0)>0,f"权限规则已加载 {pm.get('loaded',0)} 条")
say(len(d["skills"])>0,f"技能 {len(d['skills'])} 个")
sys.exit(1 if bad else 0)
P
输出里空目录显示 ❌ 是正常的,因为那里本来就没有规则;这个脚本的用途是:配好项目之后,每次开跑前确认规则真的被加载了。grok inspect --json 的字段名(projectTrusted、projectInstructions、permissions.loaded、skills)是我们在 1.0.52 里看到的,版本变了可能要调整。
我们的建议顺序(来自文档,未实测)
- 先
grok inspect确认规则加载。 - 陌生仓库:
--sandbox strict+ 少量 allow。 - 日常开发:
--sandbox workspace,保持默认询问。 - CI 才考虑全放行,同时写 deny 规则(删除、推送、读密钥)。
常见问题
Q:--yolo 和 --always-approve 一样吗?
A:官方:是的,--yolo 是别名,也等同 --permission-mode bypassPermissions[^3]。
Q:沙盒开了还需要权限规则吗?
A:需要。官方说两者独立:一个管调用能不能跑,一个管跑起来能碰什么[^1]。
Q:deny 规则写在项目里安全吗?
A:注意文档提到默认的权限模式只能写在用户级配置里,不能写在项目 .grok/config.toml。deny/allow 规则可以放项目里。
想直接开通?
需要代充,请联系站长,微信 siuserxiaowei(备注"Grok Bot 教程")。首单报优惠码 xiaowei 立减 20 元。更多免费教程在 grokguide.si。
风险提示
官方定价页写明,订阅只通过官网直接销售,不授权第三方卖家,从其他渠道买的订阅可能被暂停(cursor.com/pricing)。站长提供的是个人代充服务,与 xAI / Grok / Cursor 官方无关,请了解风险后再决定。任何时候都不要把账号密码、验证码交给别人,包括站长。
参考来源
[^1]: https://docs.x.ai/build/features/permissions(核验 2026-10-15) [^2]: https://docs.x.ai/build/features/sandbox(核验 2026-10-15) [^3]: grok 1.0.52 自带文档 22-permissions-and-safety(核验 2026-10-15)