AI工具使用从专家到小白
文章目录ClaudeBash 危险命令防护配置作用域项目级 vs 全局级方法 A全局配置推荐所有项目生效文件分布步骤 1将检测脚本放到全局目录步骤 2在 ~/.claude/settings.json 中注册 Hook步骤 3验证方法 B当前项目配置已有文件分布步骤 1.claude/settings.local.json — 注册 Hook步骤 2check-dangerous-bash.py — 检测逻辑步骤 3Hook 交互协议工作流程拦截的危险模式1. cat — 直接覆盖写入文件2. rm -r / rm -rf — 递归强制删除3. dd if — 磁盘/文件原始读写4. — Shell 覆盖重定向使用说明被拦截时如何处理临时禁用修改检测规则ClaudeBash 危险命令防护配置通过 Claude Code 的PreToolUseHook 机制在每次执行 Bash 命令前自动检测危险模式强制弹出权限确认提示防止意外覆盖或删除文件。作用域项目级 vs 全局级Claude Code 支持三个层级的配置文件优先级从低到高层级文件路径Git适用场景全局~/.claude/settings.jsonN/A所有项目生效个人偏好项目.claude/settings.json提交团队共享的 hook、权限项目本地.claude/settings.local.jsongitignore个人项目级覆盖本配置已同时部署到全局和当前项目对所有项目生效。方法 A全局配置推荐所有项目生效文件分布文件作用~/.claude/settings.json全局 Hook 注册~/.claude/hooks/check-dangerous-bash.py全局检测脚本步骤 1将检测脚本放到全局目录mkdir-p~/.claude/hooks将check-dangerous-bash.py复制到~/.claude/hooks/。步骤 2在~/.claude/settings.json中注册 Hook在已有的全局配置中新增hooks字段与其他字段平级{hooks:{PreToolUse:[{matcher:Bash,hooks:[{type:command,command:python \$HOME/.claude/hooks/check-dangerous-bash.py\,timeout:5,statusMessage:Checking command safety...}]}]}}路径区别全局配置使用$HOME/.claude/hooks/...不能用$CLAUDE_PROJECT_DIR那是项目根目录。步骤 3验证在新终端中打开任意项目执行cat test.txt——应弹出权限确认提示。然后删除测试文件即可验证全局生效。方法 B当前项目配置已有文件分布文件作用.claude/settings.local.json当前项目 Hook 注册.claude/hooks/check-dangerous-bash.py当前项目检测脚本步骤 1.claude/settings.local.json— 注册 Hook{hooks:{PreToolUse:[{matcher:Bash,hooks:[{type:command,command:python \$CLAUDE_PROJECT_DIR/.claude/hooks/check-dangerous-bash.py\,timeout:5,statusMessage:Checking command safety...}]}]}}字段说明层级字段值说明根hooks{}所有 hook 的容器→PreToolUse[]在工具执行之前触发可拦截→ →matcherBash只匹配Bash工具调用→ → →typecommand执行 Shell 命令另有prompt/agent/http类型→ → →commandpython ...调用 Python 检测脚本$CLAUDE_PROJECT_DIR为项目根目录→ → →timeout5超时 5 秒防止脚本卡死阻塞→ → →statusMessageChecking...执行时 spinner 旁显示的提示文字Hook 事件类型选择事件时机能否拦截PreToolUse✅工具执行前可拦截本次选用PostToolUse工具执行成功后仅通知PostToolUseFailure工具执行失败后仅通知Hook 执行方式选择type原理适用场景command✅执行 Shell/Python 脚本规则明确速度快零成本本次选用prompt调用 LLM 判断需要语义理解如这个命令是否危险有 API 费用agent启动子 Agent需要多步骤验证httpPOST 到外部服务企业级集中管控步骤 2check-dangerous-bash.py— 检测逻辑 PreToolUse hook: check Bash commands for destructive patterns. Reads tool call JSON from stdin, outputs hook result JSON to stdout. Blocked patterns: - cat file (bypasses Write tools read first protection) - rm -r / rm -rf (irreversible delete) - dd if... (disk write) - file (redirect overwrite, not append ) importsysimportjsonimportredefmain():# 1. 解析 stdin 中的 JSON提取 Bash 命令字符串try:datajson.load(sys.stdin)exceptjson.JSONDecodeError:print({})# 解析失败 → 放行returncmddata.get(tool_input,{}).get(command,)ifnotcmd:print({})# 空命令 → 放行return# 2. 按顺序匹配危险模式命中即停不继续检查# cat file — 绕过 Write 工具保护ifre.search(r\bcat\s,cmd):warn(cat file — overwrites without confirmation, bypasses Write tool)# rm -r / rm -rf — 不可逆删除elifre.search(r\brm\s-r,cmd):warn(rm -r — irreversible delete)# dd if — 块设备写入elifre.search(r\bdd\sif,cmd):warn(dd — can destroy disks)# 覆盖重定向排除 追加、21 合并elifnotincmdand21notincmdand2notincmd \andre.search(r(?!)(?!)\s*\S,cmd):warn( overwrite redirect — bypasses Write tool)# 3. 安全命令 → 输出空 JSON放行else:print({})defwarn(reason):输出拦截指令 JSON强制弹出权限提示print(json.dumps({continue:True,# 不阻断流程改为弹窗systemMessage:fWARNING:{reason}. Permission required.,hookSpecificOutput:{hookEventName:PreToolUse,permissionDecision:ask,# allow | deny | askpermissionDecisionReason:reason}}))if__name____main__:main()脚本关键设计决策决策选择原因拦截方式permissionDecision: ask弹确认框而非硬阻断真正需要的操作可以放行匹配顺序if/elif链命中即停避免一条命令触发多条警告排除跳过追加重定向追加到文件末尾不覆盖内容安全排除21跳过 stderr 合并只是合并输出流不写入文件排除2跳过 stdout→stderr同上解析失败输出{}放行宁可漏过也不误阻断fail-open脚本语言Python比 bash 正则更可靠JSON 处理更安全步骤 3Hook 交互协议stdin 输入Claude Code → 脚本{tool_name:Bash,tool_input:{command:cat test.txt,description:...,timeout:120000}}stdout 输出 — 安全命令脚本 → Claude Code{}输出空 JSON 对象 放行不做任何干预。stdout 输出 — 危险命令脚本 → Claude Code{continue:true,systemMessage:WARNING: cat file — overwrites without confirmation, bypasses Write tool. Permission required.,hookSpecificOutput:{hookEventName:PreToolUse,permissionDecision:ask,permissionDecisionReason:cat file — overwrites without confirmation, bypasses Write tool}}字段作用continue: true不中断会话流程systemMessage在 UI 中显示的警告文字permissionDecision: ask强制弹出权限确认对话框permissionDecisionReason对话框中展示的拦截原因工作流程Bash 命令 → PreToolUse Hook → check-dangerous-bash.py │ ┌───────┴───────┐ │ 检测危险模式 │ └───────┬───────┘ 安全 │ 危险 {} │ { permissionDecision: ask } │ │ │ 直接执行 │ 弹出权限确认 │ ┌────┴────┐ │ 允许 拒绝 │ 执行 不执行拦截的危险模式1.cat — 直接覆盖写入文件catoutput.txtcat/path/to/file命令作用cat默认将标准输入的内容输出到终端。加上重定向后会将终端输入的内容直接覆盖写入目标文件原有内容全部丢失。为何危险Claude Code 的Write/Edit工具有必须先 Read 才能覆盖的保护机制但cat 是 Bash 原生命令绕过了这道保护可能静默覆盖重要文件。这正是本配置要解决的核心问题。2.rm -r/rm -rf— 递归强制删除rm-rdirectory/# 递归删除目录及其内容rm-rfdirectory/# 递归删除强制模式不提示确认rm-rfnode_modules/# 常见场景清理依赖目录命令作用rmremove删除文件或目录-rrecursive递归删除目录及其所有子目录和文件-fforce强制删除忽略不存在的文件不弹出确认提示为何危险一旦执行不可逆不经过回收站-f参数会让命令静默执行不提示极易误删整个项目目录。3.dd if— 磁盘/文件原始读写ddif/dev/zeroofdisk.imgbs1Mcount100# 创建镜像文件ddifbackup.isoof/dev/sdb# 写入U盘/磁盘命令作用dddata duplicator底层数据复制工具ifinput file指定输入源ofoutput file指定输出目标bsblock size每次读写的块大小为何危险dd直接操作块设备of可以指向磁盘分区如/dev/sda错误的of参数会彻底摧毁磁盘数据连文件系统结构都被覆盖无法通过常规手段恢复。4.— Shell 覆盖重定向echohellofile.txt# 将 echo 输出覆盖写入文件some-commandresult.log# 将命令输出覆盖写入文件data.json# 清空文件内容Bash 允许省略命令命令作用是 Shell 的输出重定向操作符将左侧命令的标准输出覆盖写入右侧文件。如果文件已存在原有内容先被清空再写入新内容。为何危险与cat 同理绕过了Write/Edit工具的保护。 important_file会在瞬间清空文件且不会经过确认。区分是追加append重定向不覆盖原有内容因此不被拦截。使用说明被拦截时如何处理当命令被拦截时Claude Code 会弹出权限确认提示显示拦截原因。你有三个选择Allow允许确认安全放行执行Deny拒绝阻止执行Ask询问回到对话手动确认或用其他方式完成临时禁用如需大量执行文件操作可在对话中告知暂时关闭 hook我将通过修改配置临时禁用检测。修改检测规则编辑.claude/hooks/check-dangerous-bash.py修改main()函数中的正则模式即可增删拦截规则。修改后下次 Bash 调用即刻生效无需重启。

相关新闻

OpenCV-Python实战(12)——一文详解AR增强现实

OpenCV-Python实战(12)——一文详解AR增强现实

OpenCV-Python实战(12)——一文详解AR增强现实 0. 前言 1. 增强现实简介 2. 基于无标记的增强现实 2.1 特征检测 2.2 特征匹配 2.3 利用特征匹配和单应性计算以查找对象 3. 基于标记的增强现实 3.1 创建标记和字典 3.2 检测标记 3.3 相机校准 3.4 相机姿态估计 3.5 增强现实初…

2026/7/21 15:55:50 阅读更多 →
国产化落地避坑 · 干货向|Oracle 迁金仓 KES,我把外连接消除排在隐性陷阱第一位

国产化落地避坑 · 干货向|Oracle 迁金仓 KES,我把外连接消除排在隐性陷阱第一位

从 Oracle 迁到金仓 KES 这几年,我攒了一份隐性陷阱清单。所谓隐性,是它们不报错。语法过了,程序跑了,数据也出来了,只是结果悄悄和 Oracle 不一样。这类坑比报错的坑难缠十倍,因为报错会拦住你&#xff0c…

2026/7/21 15:55:50 阅读更多 →
OpenCV-Python实战(13)——OpenCV与机器学习的碰撞

OpenCV-Python实战(13)——OpenCV与机器学习的碰撞

OpenCV-Python实战(13)——OpenCV与机器学习的碰撞 0. 前言 1. 机器学习简介 1.1 监督学习 1.2 无监督学习 1.3 半监督学习 2. K均值 (K-Means) 聚类 2.1 K-Means 聚类示例 3. K最近邻 3.1 K最近邻示例 4. 支持向量机 4.1 支持向量机示例 小结 系列链接 0. 前言 机器学习是人…

2026/7/21 15:55:50 阅读更多 →

最新新闻

【小程序毕业设计】基于微信小程序的宠物综合便民服务平台 基于 Django 的轻量化宠物养护信息交流管理系统(源码+文档+远程调试,全bao定制等)

【小程序毕业设计】基于微信小程序的宠物综合便民服务平台 基于 Django 的轻量化宠物养护信息交流管理系统(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/21 20:55:23 阅读更多 →
Casetify手机壳值不值得买?深度体验半年后,说说真实优缺点和长期感受

Casetify手机壳值不值得买?深度体验半年后,说说真实优缺点和长期感受

直接回答:如果你把手机壳看作“每天拿在手上的配饰”而不仅仅是保护壳,那 Casetify 很值得入手;但如果你追求极致性价比,它可能不适合你。 作为定价在 60–100 美元(约合人民币 400–700 元)的潮流电子配件…

2026/7/21 20:55:23 阅读更多 →
担心 AI 编造虚假参考文献?盘点真实溯源文献的论文工具

担心 AI 编造虚假参考文献?盘点真实溯源文献的论文工具

不少同学借助 AI 完成文献综述、论文初稿时,都踩过同一个大坑:AI 输出的参考文献排版规整、作者与期刊名称看起来毫无破绽,可前往知网、万方检索,却根本找不到原文。这类由 AI 幻觉催生的 “幽灵文献”,轻则投稿被编辑…

2026/7/21 20:55:23 阅读更多 →
Python进阶:深浅拷贝(copy.copy/copy.deepcopy)

Python进阶:深浅拷贝(copy.copy/copy.deepcopy)

Python进阶:深浅拷贝(copy.copy/copy.deepcopy) 📚 本章学习目标:深入理解深浅拷贝(copy.copy/copy.deepcopy)的核心概念与实践方法,掌握关键技术要点,了解实际应用场景与…

2026/7/21 20:55:23 阅读更多 →
Windows Auto Dark Mode:智能主题切换的终极解决方案

Windows Auto Dark Mode:智能主题切换的终极解决方案

Windows Auto Dark Mode:智能主题切换的终极解决方案 【免费下载链接】Windows-Auto-Night-Mode Automatically switches between the dark and light theme of Windows 10 and Windows 11 项目地址: https://gitcode.com/gh_mirrors/wi/Windows-Auto-Night-Mode …

2026/7/21 20:55:23 阅读更多 →
计算机毕业设计之基于springboot的小说推荐系统

计算机毕业设计之基于springboot的小说推荐系统

随着网络文学的繁荣,小说阅读已成为人们生活中不可或缺的一部分。为了满足用户的阅读需求,本文设计并实现了一个基于Spring Boot的小说推荐系统。该系统运用Java、Spring Boot、Vue以及爬虫技术,为用户提供便捷、丰富的小说阅读体验。在系统后…

2026/7/21 20:54:22 阅读更多 →

日新闻

Octane Render与C4D汉化版安装与优化指南

Octane Render与C4D汉化版安装与优化指南

1. Octane Render与C4D的黄金组合:为什么选择这个方案?在三维创作领域,渲染器的选择往往决定了作品的最终呈现质量和工作效率。作为Cinema 4D(C4D)用户,Octane Render的GPU加速特性与实时预览功能&#xff…

2026/7/21 0:00:19 阅读更多 →
GPMC接口设计:异步/同步模式与多路复用配置实战

GPMC接口设计:异步/同步模式与多路复用配置实战

1. GPMC接口设计:从硬件连接到软件配置的全局视角在嵌入式系统开发中,尤其是基于TI Sitara系列如AM263x这类高性能微控制器的项目里,外部存储器的扩展几乎是绕不开的一环。无论是存放大量非易失性代码的NOR Flash,还是作为高速数据…

2026/7/21 0:00:19 阅读更多 →
UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

1. 项目概述:UE5 GAS RPG被动技能的核心价值在UE5里用GAS(Gameplay Ability System)做RPG游戏,主动技能像是你手里的武器,按一下打一下,逻辑直接,反馈也快。但被动技能,它更像是你身…

2026/7/21 0:00:19 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻