Bảo mật & AI AgentĐộ khó: Chuyên sâu / Nhật ngữ N3–N2⏱ 14 phút đọc

Quy Tắc Phân Quyền Claude Code: Đường Dẫn 'path' Chỉ Có Tác Dụng Với Read/Edit

概Điểm nhấn trọng tâm của bài viết (Overview)

Phân tích chuyên sâu cơ chế bảo vệ tệp nhạy cảm trong Claude Code: vì sao deny Write(.env) không hoạt động, nguy cơ rò rỉ qua Grep(path) và giải pháp thiết lập bảo mật chuẩn.

Quy Tắc Phân Quyền Claude Code: Đường Dẫn 'path' Chỉ Có Tác Dụng Với Read/Edit

Thông tin bài viết gốc & Loại nội dung

  • Tác giả: kai_kou
  • Tiêu đề gốc: Claude Code権限ルール、pathが効くのはRead/Editだけ
  • Nguồn: Qiita (Công bố ngày 17/10/2026 - Qiita ID: 7a358290f3d5f6e8967c)
  • Loại nội dung: Trích đoạn ngắn nguyên văn đối chiếu kèm bài đọc tiếng Nhật chuyên ngành do đội ngũ biên soạn phát triển toàn diện dựa trên phát hiện kỹ thuật thực tế của tác giả.

Hero image là sơ đồ khái niệm SVG 1200×675 do BrSE.vn tự vẽ, phát hành theo giấy phép CC0 1.0. Alt của ảnh là tiêu đề bài viết. Minh họa trực quan ranh giới đánh giá thuộc tính path giữa các công cụ trong Claude Code.


Mục tiêu học tập

  1. Kiến thức công nghệ: Nắm vững cấu trúc phân loại công cụ đọc/ghi trong hệ thống quyền hạn của Claude Code (v2.1.300), hiểu rõ cách thức hoạt động của permissions.deny và cách khắc phục lỗ hổng rò rỉ dữ liệu qua công cụ tìm kiếm nội dung tệp.
  2. Năng lực tiếng Nhật: Luyện đọc và phân tích cấu trúc câu tiếng Nhật kỹ thuật chuyên sâu về quản lý bảo mật, các dạng câu điều kiện giả định (〜たつもり, 〜かねない), đại từ chỉ định và ngữ pháp N2/N1 trong văn cảnh báo cáo an toàn thông tin.

Key Takeaways

  1. Ảo tưởng an toàn với cấu hình sai: Viết "deny": ["Write(.env)"] trong .claude/settings.json hoàn toàn không bảo vệ được tệp .env vì bộ kiểm tra quyền hạn của Claude Code chỉ đánh giá đường dẫn đối với hai danh mục chính là Read và Edit.
  2. Lỗ hổng Grep(path) không có cảnh báo: Trong phiên bản v2.1.300, mặc dù các cú pháp Write(path) đã bị cảnh báo lúc khởi động, cú pháp Grep(path) vẫn bị bỏ qua một cách im lặng và cho phép đọc nội dung tệp bí mật.
  3. Quy tắc vàng để khóa tệp nhạy cảm: Chỉ cần cấu hình một dòng duy nhất "deny": ["Read(./secret/**)"] là có thể chặn đồng thời cả thao tác đọc và các thao tác ghi phát sinh từ Edit lẫn Write.

Nội dung Bài học & Đọc hiểu Nhật – Việt

Phần 1: Thực trạng thiết lập sai quyền hạn và sự ngộ nhận của lập trình viên

(第1部:設定の誤解と開発者の思い込み)

Bản dịch tiếng Việt tương ứng

Liệu bạn có đang đinh ninh rằng mình đã ngăn chặn thành công việc ghi đè vào tệp .env chỉ bằng cách khai báo Write(.env) trong .claude/settings.json hay không? Thực tế, Claude Code tuy vẫn tải quy tắc này vào bộ nhớ nhưng lại không bao giờ tham chiếu đến nó trong quá trình kiểm tra quyền truy cập tệp. Tình trạng mà chỉ riêng người viết tự huyễn hoặc rằng hệ thống “đang được bảo vệ” vẫn âm thầm tồn tại bên trong tệp cấu hình.

Bản dịch đoạn đọc mở rộng

Khi áp dụng các AI Agent tự hành vào quy trình phát triển phần mềm, điều đáng báo động nhất chính là tình huống các ràng buộc bảo mật mà ta ngỡ đã thiết lập lại hoàn toàn không phát huy tác dụng. Nếu có sự hiểu lầm trong việc chỉ định tên công cụ, điều đó rất có thể dẫn tới sự cố rò rỉ thông tin mật nghiêm trọng trong hệ thống CI hoặc các đường ống tự động hóa.

  • Giải thích kỹ thuật: Claude Code quản lý tệp theo 2 danh mục trừu tượng (Read/Edit). Quy tắc đường dẫn path không áp dụng riêng lẻ cho từng tên tool ngoại vi như Write hay MultiEdit cũ mà chỉ áp dụng theo cơ chế gộp.
  • Phân tích câu khó:
    • Cụm 〜たつもりになっていないでしょうか: Đặt câu hỏi tu từ mang sắc thái cảnh báo người đọc đang có niềm tin sai lệch về hành vi của hệ thống.
    • Cụm 書いた本人だけが...思い込む状態が、設定ファイルの中に静かに残ります: Chủ ngữ chính là 状態 (trạng thái), vị ngữ là 残ります (tồn tại/lưu lại), động từ 思い込む thể hiện sự ngộ nhận chủ quan.

Phần 2: Kiểm chứng thực nghiệm với Grep(path) và cơ chế Read deny

(第2部:Grep(path)の実測検証とRead拒否の波及効果)

Bản dịch tiếng Việt tương ứng

Nếu mục đích là bảo vệ tệp bí mật, chỉ một dòng deny áp dụng cho Read(path) là đủ để ngăn chặn cả thao tác đọc lẫn hành vi ghi đè thông qua Edit và Write. Ngược lại, cú pháp Grep(path) dù không phát cảnh báo lúc khởi động nhưng thực tế lại không hề có hiệu lực và vẫn trả về nguyên vẹn nội dung tệp; vì thế việc thiết lập quy tắc Read là điều kiện tiên quyết để bảo vệ trọn vẹn.

  • Giải thích kỹ thuật: Tác giả thực hiện kiểm nghiệm bằng lệnh claude -p với tệp chứa chuỗi TOKEN=abc123. Khi đặt deny: ["Grep(./secret/**)"], công cụ Grep vẫn trả về token thành công. Nhưng khi đổi thành deny: ["Read(./secret/**)"], lệnh Grep lập tức bị chặn với thông báo lỗi Permission to read ... has been denied.
  • Phân tích câu khó:
    • Từ nối ため (chỉ nguyên nhân) kết nối vế câu thực tế không có hiệu lực với vế kết luận cần thiết lập quy tắc Read.
    • Động từ 塞ぐ (ふさぐ - đóng lại / chặn đứng) thường được dùng trong bảo mật mạng với nghĩa khóa chặt các lỗ hổng truy cập.

Ví dụ Cấu hình Thực tế & Giới hạn Áp dụng

Dưới đây là mẫu cấu hình chuẩn xác cho .claude/settings.json trong dự án phối hợp với đối tác Nhật Bản:

{
  "permissions": {
    "deny": [
      "Read(./.env*)",
      "Read(./config/secrets/**)",
      "Edit(./.env*)",
      "Edit(./config/secrets/**)",
      "Bash(rm -rf *)",
      "Bash(git push --force *)"
    ]
  }
}

Giới hạn kỹ thuật cần lưu ý:

  1. Trường hợp ngoại lệ NotebookEdit: Theo tài liệu chính thức từ Anthropic, công cụ NotebookEdit dùng cho Jupyter Notebook không chịu sự điều phối tự động từ quy tắc phủ định Read. Với các dự án Data/AI có tệp .ipynb, bắt buộc phải bổ sung quy tắc Edit(path) cụ thể.
  2. Quyền chạy Shell: Phân quyền tệp chỉ kiểm soát công cụ tệp của Claude Code. Nếu Agent được cấp quyền chạy lệnh Bash tự do (Bash), nó vẫn có thể dùng lệnh cat hoặc python để đọc tệp nếu không được cô lập qua container/sandbox.

6. Học tiếng Nhật qua chủ đề — 技術日本語を学ぶ

6.1. Sổ tay thuật ngữ Phân quyền và Bảo mật Claude Code

Bảng tổng hợp các thuật ngữ cốt lõi về phân quyền tệp, quản lý quyền hạn và phòng chống rò rỉ dữ liệu trong AI coding:

Thuật ngữ Nhật Furigana Hán Việt Nghĩa tiếng Việt / English Câu ví dụ Nhật Dịch nghĩa
権限 けんげん Quyền Hạn Quyền hạn, đặc quyền truy cập (Permissions) 権限けんげん設定せっていを定期的ていきてきに見直みなおす。 Rà soát định kỳ thiết lập quyền hạn.
塞ぐ ふさぐ Tắc Chặn đứng, bịt kín (lỗ hổng, nguy cơ) セキュリティホールを迅速じんそくに塞ふさぐ。 Kịp thời bịt kín lỗ hổng bảo mật.
思い込む おもいこむ Tư Khâm Đinh ninh, ngộ nhận chủ quan 安全あんぜんだと思おもい込こむのは危険きけんである。 Đinh ninh là an toàn sẽ rất nguy hiểm.
警告 けいこく Cảnh Cáo Cảnh báo, thông báo lỗi nguy cơ 設定せってい不備ふびによる起動時きどうじ警告けいこくを確認かくにんする。 Kiểm tra cảnh báo khởi động do cấu hình sai.
制約 せいやく Chế Ước Ràng buộc, điều kiện hạn chế セキュリティ制約せいやくが正ただしく機能きのうしているか検証けんしょうする。 Kiểm chứng xem ràng buộc bảo mật có hoạt động đúng không.
漏洩 ろうえい Lậu Duệ Rò rỉ thông tin mật (Leakage) CIパイプラインでの機密きみつ漏洩ろうえいを防止ぼうしする。 Phòng chống rò rỉ bí mật trong pipeline CI.
秘密 ひみつ Bí Mật Bí mật, tệp cấu hình mật (Secret) 秘密ひみつファイルを安全あんぜんに保護ほごする。 Bảo vệ an toàn tệp bí mật.
防護 ぼうご Phòng Hộ Phòng vệ, bảo vệ an toàn (Protection) 完全かんぜんな防護ぼうごにはReadルールの指定していが必要ひつようだ。 Để phòng hộ hoàn toàn cần chỉ định quy tắc Read.
不可欠 ふかけつ Bất Khả Khiết Không thể thiếu, tất yếu チーム開発かいはつにおける厳格げんかくな監査かんさは不可欠ふかけつだ。 Kiểm toán nghiêm ngặt là tất yếu trong dự án.
参照 さんしょう Tham Chiếu Tham chiếu, tra cứu dữ liệu (Reference) ファイルの権限けんげんチェックでルールを参照さんしょうする。 Tham chiếu quy tắc khi kiểm tra quyền truy cập tệp.
波及 はきゅう Ba Cập Lan truyền, ảnh hưởng dây chuyền (Ripple effect) 1行ぎょうの拒否きょひルールが全体ぜんたいに波及はきゅうする。 Một dòng quy tắc từ chối sẽ lan tỏa hiệu lực ra toàn bộ.
監査 かんさ Giám Tra Kiểm toán, thanh tra an toàn (Audit) アクセスログを監査かんさして不正ふせいを検知けんちする。 Kiểm toán nhật ký truy cập để phát hiện hành vi bất thường.
Tra cứu Kanji trong bài

6.2. Ngữ pháp và mẫu diễn đạt trọng tâm

Bảng tổng hợp các cấu trúc ngữ pháp dùng trong phân tích an toàn thông tin và báo cáo kỹ thuật:

Mẫu Ý nghĩa Ví dụ
〜たつもり Đinh ninh rằng đã làm gì đó / Cứ ngỡ là… 書かき込こみを塞ふさいだつもりになっていた。
〜かねない Rất có thể sẽ dẫn đến kết quả xấu 重大じゅうだいな機密きみつ漏洩ろうえいを引ひき起おこしかねない。
〜に基づいて Dựa trên cơ sở / Căn cứ vào セキュリティ要件ようけんに基もとづいて設定せっていを変更へんこうする。

Chi tiết từng mẫu ngữ pháp:

  • 〜たつもり (N3): Đinh ninh rằng đã làm gì đó / Cứ ngỡ bản thân đã hoàn thành

    • Cấu trúc: Động từ thể Ta (た) + つもり (thường đi với だ / でいる / になっている)
    • Ý nghĩa & sắc thái: Biểu thị nhận thức chủ quan rằng mình đã hoàn tất việc gì, nhưng thực tế khách quan thì chưa làm hoặc kết quả trái ngược.
    • Ví dụ 1: 設定せっていファイルを更新こうしんしてアクセスを制限せいげんしたつもりだったが、実際じっさいにはキャッシュが残のこっていた。(Cứ ngỡ rằng cập nhật tệp cấu hình là đã hạn chế được truy cập, nhưng thực chất bộ nhớ đệm vẫn còn lưu.)
    • Ví dụ 2: 暗号化あんごうかしたつもりで平文のまま送信そうしんしてしまった。(Cứ đinh ninh là đã mã hóa rồi nhưng lại gửi đi dưới dạng văn bản thuần.)
    • Lỗi thường gặp: Tránh nhầm với 〜つもりだ (thể từ điển + つもりだ: dự định làm gì trong tương lai).
  • 〜かねない (N2): Rất có thể sẽ dẫn đến hậu quả tiêu cực / E rằng sẽ xảy ra sự cố

    • Cấu trúc: Động từ thể Masu bỏ ます + かねない
    • Ý nghĩa & sắc thái: Cảnh báo một kết quả xấu hoàn toàn có khả năng xảy ra nếu duy trì trạng thái hoặc nguyên nhân hiện tại.
    • Ví dụ 1: ツール名めいの指定していに誤解ごかいがあると、重大じゅうだいな漏洩ろうえいを引ひき起おこしかねません。(Nếu có sự hiểu lầm trong việc chỉ định tên công cụ, e rằng rất dễ gây ra sự cố rò rỉ nghiêm trọng.)
    • Ví dụ 2: 不適切ふてきせつな権限けんげんルールはシステム障害しょうがいを招まねきかねない。(Quy tắc phân quyền bất cập rất có thể dẫn tới sự cố sập hệ thống.)
    • Lỗi thường gặp: Chỉ dùng cho kết quả tiêu cực, không dùng cho các kết quả tích cực hay may mắn.
  • 〜に基づいて (N3): Dựa trên cơ sở / Căn cứ vào tiêu chuẩn

    • Cấu trúc: Danh từ + に基づいて / に基づく + Danh từ
    • Ý nghĩa & sắc thái: Biểu thị hành động hoặc phán đoán được đưa ra dựa trên tài liệu chuẩn mực hoặc căn cứ pháp lý/kỹ thuật xác thực.
    • Ví dụ 1: 公式こうしきドキュメントの仕様しように基もとづいて権限けんげんルールを設計せっけいします。(Thiết kế quy tắc quyền hạn dựa trên đặc tả của tài liệu chính thức.)
    • Ví dụ 2: セキュリティポリシーに基もとづいたアクセス制御せいぎょを実施じっしする。(Thực thi kiểm soát truy cập dựa trên chính sách bảo mật.)

7. Thực hành vai trò BrSE — 現場で伝える

7.1. Câu hỏi Luyện Đọc hiểu Tiếng Nhật (リーディング問題)

Câu 1 (Ý chính): なぜ Write(.env) という設定では不十分なのか?
  • A. .env ファイルは常に暗号化されているため。
  • B. Claude Code の権限チェックにおいて、ファイルパス規則は Read/Edit のカテゴリでしか参照されないため。
  • C. Write ツールはプロジェクト設定で常に無効化されているため。
  • D. .claude/settings.json 自体が読み込まれない仕様だから。

Đáp án đúng: B
Giải thích tiếng Việt: Trong Phần 1, văn bản nêu rõ Claude Code tải quy tắc vào nhưng không hề tham chiếu đến Write(path) khi kiểm tra tệp, do hệ thống chỉ thẩm định đường dẫn theo danh mục Read/Edit.

Câu 2 (Chi tiết): Grep(path) を deny に設定した場合、どのような挙動になるか?
  • A. 起動時に文法エラーの警告が表示される。
  • B. Grep ツールの呼び出しが即座に拒否され、権限エラーになる。
  • C. 警告は表示されず、Grep ツールはそのままファイルの中身を返してしまう。
  • D. プロジェクト全体のファイルが自動的に削除される。

Đáp án đúng: C
Giải thích tiếng Việt: Tác giả đã thực nghiệm chỉ ra rằng Grep(path) không phát cảnh báo nhưng cũng không có tác dụng ngăn chặn, công cụ Grep vẫn trả về nội dung của tệp bí mật.

Câu 3 (Hành động): 秘密ファイルを読み書き両方から安全に守るための最も簡潔な設定はどれか?
  • A. "deny": ["Write(path)"]
  • B. "deny": ["Grep(path)"]
  • C. "deny": ["Read(path)"]
  • D. "allow": ["Read(path)"]

Đáp án đúng: C
Giải thích tiếng Việt: Quy tắc Read(path) trong cơ chế mới của Claude Code sẽ tự động khóa cả thao tác đọc lẫn các thao tác ghi phát sinh từ Edit và Write.


7.2. Bài luyện Viết & Báo cáo Dành cho BrSE

Đề bài: Hãy viết một tin nhắn Slack (khoảng 3-4 câu) gửi Tech Lead đối tác Nhật Bản thông báo về việc phát hiện cấu hình permissions.deny hiện tại chưa chặn được lệnh tìm kiếm tệp nhạy cảm và đề xuất thay đổi sang quy tắc Read.

Mẫu câu trả lời tham khảo (参考回答例)

Nguồn tham khảo và phạm vi xác minh

Quay lại danh sách bài viết
架
Ban biên tập BrSE.vnKỹ sư Cầu nối & Chuyên gia Dự án Nhật - Việt

Đội ngũ biên tập BrSE.vn gồm các Bridge Software Engineer (BrSE) và Solution Architect với hơn 10 năm kinh nghiệm thực chiến trong các dự án hợp tác công nghệ Việt - Nhật. Chia sẻ kiến thức về kỹ thuật làm rõ yêu cầu (要件定義), tài liệu đặc tả hệ thống, lược dịch chuyên sâu từ Qiita và kỹ năng cầu nối song hành công nghệ - nghiệp vụ.