ระบบ Permissions ของ Claude Code
กฎ permissions, กฎเฉพาะเครื่องมือ, managed settings และ working directories
ภาพรวม
ระบบ permissions ของ Claude Code ควบคุมการดำเนินการที่ Claude สามารถทำได้โดยอัตโนมัติ vs. ที่ต้องการการอนุมัติจากคุณ
กฎ Permissions
โครงสร้างกฎ
กฎ permissions กำหนดใน settings files:
{
"permissions": {
"allow": ["Read", "Edit(*.md)", "Bash(git *)"],
"deny": ["Bash(rm -rf *)"],
"defaultMode": "default"
}
}
รูปแบบกฎ
| รูปแบบ | ความหมาย |
|---|---|
Read | อนุญาตให้อ่านไฟล์ทั้งหมด |
Edit(*.ts) | อนุญาตให้แก้ไขไฟล์ TypeScript เท่านั้น |
Bash(git *) | อนุญาตให้รันคำสั่ง git ทั้งหมด |
mcp__github__* | อนุญาตให้ใช้ GitHub MCP tools ทั้งหมด |
กฎเฉพาะเครื่องมือ
เครื่องมือไฟล์
{
"permissions": {
"allow": [
"Read",
"Write(src/**)",
"Edit(*.json)"
],
"deny": [
"Write(.env)",
"Write(*.secret)"
]
}
}
เครื่องมือ Bash
{
"permissions": {
"allow": [
"Bash(npm *)",
"Bash(git *)",
"Bash(pytest *)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(sudo *)"
]
}
}
เครื่องมือ MCP
{
"permissions": {
"allow": [
"mcp__github__create_issue",
"mcp__sentry__*"
],
"deny": [
"mcp__github__delete_*"
]
}
}
Managed Settings
สำหรับองค์กร ผู้ดูแลระบบสามารถกำหนด permissions ระดับ organization ที่ผู้ใช้ไม่สามารถแก้ไขได้:
ไฟล์ Managed Settings
/Library/Application Support/Claude/managed-settings.json # macOS
%PROGRAMDATA%\Claude\managed-settings.json # Windows
/etc/claude/managed-settings.json # Linux
ตัวอย่าง Managed Settings
{
"permissions": {
"deny": ["Bash(curl *)", "Bash(wget *)"],
"disableBypassPermissionsMode": true
}
}
ลำดับความสำคัญ
กฎ deny มีความสำคัญสูงกว่า allow เสมอ และ managed settings มีความสำคัญสูงกว่า user settings
Working Directories
Claude Code จำกัด filesystem access ตาม working directory:
การตั้งค่า Working Directory
{
"workingDirectory": "/path/to/project"
}
การอนุญาต Paths เพิ่มเติม
{
"allowedPaths": [
"/home/user/shared-libs",
"/tmp/claude-work"
]
}
ตำแหน่ง Settings Files
| ตำแหน่ง | ขอบเขต |
|---|---|
~/.claude/settings.json | ส่วนตัว ใช้ได้ทุก project |
.claude/settings.json | Project ปัจจุบัน (commit ได้) |
.claude/settings.local.json | Project ปัจจุบัน (gitignored) |
| Managed settings | Organization-wide (admin-controlled) |
ดูสิ่งที่เกี่ยวข้อง
- ./permission-modes - โหมด permissions ต่าง ๆ
- ./hooks-guide - ใช้ hooks เพื่อจัดการ permissions อัตโนมัติ