File tree Expand file tree Collapse file tree 3 files changed +108
-2
lines changed
Expand file tree Collapse file tree 3 files changed +108
-2
lines changed Original file line number Diff line number Diff line change 1313 ├── pr-update.md # 更新 PR 描述
1414 ├── commit.md # 提交变更
1515 ├── upgrade-dep.md # 升级依赖
16- └── review.md # 审查 PR
16+ ├── review.md # 审查 PR
17+ └── fix-permissions.md # 检查和修复文件权限
1718```
1819
1920## 📋 项目规则
9798- 测试覆盖情况
9899- 生成审查报告
99100
101+ ### 检查和修复权限
102+
103+ ``` bash
104+ # 检查并修复所有文件和目录权限
105+ /fix-permissions
106+ ```
107+
108+ ** 自动化流程:**
109+ 1 . 从 pom.xml 获取正确的所有者信息
110+ 2 . 扫描所有文件和目录
111+ 3 . 识别权限不一致的文件
112+ 4 . 自动修复为正确的所有者
113+ 5 . 生成检查报告
114+
100115## 🎯 最佳实践
101116
102117### 1. 使用 Slash Commands
@@ -188,7 +203,7 @@ gh pr view 369
188203** 解决方案** :使用 ` /pr-update <pr-number> ` 命令更新
189204
190205### 问题:文件权限错误
191- ** 解决方案** :已在 ` project-rules.md ` 中配置自动处理
206+ ** 解决方案** :使用 ` /fix-permissions ` 命令自动检查和修复
192207
193208### 问题:想要自定义命令
194209** 解决方案** :在 ` .claude/commands/ ` 目录创建新的 ` .md ` 文件
Original file line number Diff line number Diff line change 1+ 检查并修复项目中所有文件和文件夹的权限,确保符合项目规范。
2+
3+ ** 用法:**
4+ - ` /fix-permissions ` - 检查并自动修复所有权限问题
5+
6+ ** 执行步骤:**
7+
8+ 1 . ** 获取参考文件的所有者信息**
9+ ``` bash
10+ ls -l pom.xml | awk ' {print $3":"$4}'
11+ ```
12+ - 从项目根目录的 ` pom.xml ` 动态获取正确的所有者信息
13+ - 不硬编码用户名和用户组
14+
15+ 2 . ** 统计当前文件权限分布**
16+ ``` bash
17+ # 检查所有文件的所有者分布
18+ find . -type f -print0 2> /dev/null | xargs -0 ls -l 2> /dev/null | awk ' {print $3":"$4}' | sort | uniq -c | sort -rn
19+
20+ # 检查所有目录的所有者分布
21+ find . -type d -print0 2> /dev/null | xargs -0 ls -ld 2> /dev/null | awk ' {print $3":"$4}' | sort | uniq -c | sort -rn
22+ ```
23+
24+ 3 . ** 识别权限不一致的文件**
25+ ``` bash
26+ # 找出所有者不是参考用户的文件
27+ find . -type f -print0 2> /dev/null | xargs -0 ls -l 2> /dev/null | awk ' $3 == "root" {print $9}'
28+
29+ # 找出所有者不是参考用户的目录
30+ find . -type d -print0 2> /dev/null | xargs -0 ls -ld 2> /dev/null | awk ' $3 == "root" {print $9}'
31+ ```
32+
33+ 4 . ** 修复文件权限**
34+ ``` bash
35+ # 获取正确的所有者信息
36+ OWNER_GROUP=$( ls -l pom.xml | awk ' {print $3":"$4}' )
37+
38+ # 修复所有文件权限
39+ find . -type f -print0 2> /dev/null | xargs -0 ls -l 2> /dev/null | awk ' $3 == "root" {print $9}' | xargs sudo chown $OWNER_GROUP
40+
41+ # 修复所有目录权限
42+ find . -type d -print0 2> /dev/null | xargs -0 ls -ld 2> /dev/null | awk ' $3 == "root" {print $9}' | xargs sudo chown $OWNER_GROUP
43+ ```
44+
45+ 5 . ** 最终验证**
46+ ``` bash
47+ # 统计修复后的权限分布
48+ find . \( -type f -o -type d \) -print0 2> /dev/null | xargs -0 ls -ld 2> /dev/null | awk ' {print $3":"$4}' | sort | uniq -c | sort -rn
49+
50+ # 抽查几个之前有问题的文件
51+ ls -ld ./.claude/settings.local.json ./framework/.claude/settings.local.json
52+ ```
53+
54+ 6 . ** 生成检查报告**
55+ - 显示参考所有者信息
56+ - 显示发现的问题文件和目录数量
57+ - 显示修复的文件和目录列表
58+ - 显示最终验证结果
59+
60+ ** 规范说明:**
61+
62+ 根据 ` .claude/project-rules.md ` 中的规则 1:
63+ - 所有文件必须设置正确的所有者权限
64+ - 不要硬编码用户名和用户组
65+ - 动态从 ` pom.xml ` 等参考文件获取权限信息
66+ - 确保用户可以自主修改所有文件
67+
68+ ** 常见问题:**
69+
70+ ** 为什么有些文件是 root 所有者?**
71+ - 可能是使用 ` sudo ` 创建的文件或目录
72+ - Git 操作时使用了 sudo 权限
73+ - Claude Code 创建文件时权限设置不当
74+
75+ ** 修复后会影响 Git 吗?**
76+ - 不会影响 Git 历史和提交
77+ - 只改变文件系统级别的所有者
78+ - Git 内容和状态保持不变
79+
80+ ** 需要 sudo 权限吗?**
81+ - 修复 root 所有者的文件时需要 sudo
82+ - 确保当前用户在 sudoers 列表中
83+
84+ ** 参考文档:**
85+ - 项目规则:` .claude/project-rules.md ` (规则 1)
86+ - 动态获取权限方法的详细说明
Original file line number Diff line number Diff line change @@ -225,6 +225,11 @@ sudo chown $OWNER_GROUP <file>
225225**`/review <pr-number>`** - 审查 Pull Request
226226- `/review 369` - 审查 #369 PR
227227
228+ ### 项目管理命令
229+
230+ **`/fix-permissions`** - 检查和修复文件权限
231+ - `/fix-permissions` - 检查并自动修复所有权限问题
232+
228233### 开发相关命令
229234
230235**`/commit [message]`** - 提交变更
You can’t perform that action at this time.
0 commit comments