پیکربندی اجازه‌ها

حالت‌های اجازه Claude Code را پیکربندی کنید تا کنترل کنید کدام عملیات به تأیید انسانی نیاز دارند

به‌روزرسانی 2026-11-13

به کلید API نیاز دارید؟ ثبت‌نام ←نقاط پایانی و Base URL ←

در این صفحه

Claude Code از یک سیستم اجازه استفاده می‌کند تا کنترل کند کدام عملیات به تأیید کاربر نیاز دارند. پیکربندی درست اجازه‌ها هم امنیت و هم بهره‌وری توسعه را تضمین می‌کند.

حالت‌های اجازه

حالت توضیح کاربرد
default بار اولی که یک ابزار استفاده می‌شود، اجازه می‌خواهد (حالت دستی) توسعه روزمره، با تعادل میان امنیت و بهره‌وری
acceptEdits ویرایش فایل‌ها را به‌طور خودکار تأیید می‌کند؛ سایر عملیات همچنان نیازمند تأیید هستند کارهایی که شامل تغییرات مکرر فایل هستند
plan فقط تحلیل، بدون اجرا (حالت Plan)؛ زمانی که حالت auto در دسترس باشد، دستورهای shell در حین برنامه‌ریزی توسط طبقه‌بند بررسی می‌شوند کاوش و بررسی کد بدون اینکه بخواهید Claude تغییری ایجاد کند
auto یک طبقه‌بند اقداماتی را که نیاز به تأیید دارند بررسی می‌کند؛ اقداماتی که به‌وضوح خارج از محدوده باشند مسدود می‌شوند و بقیه بدون درخواست تأیید اجرا می‌شوند توسعه روزمره با وقفه‌های کمتر (پیش‌فرض نشست‌های تعاملی از Claude Code 2.1.283 به بعد)
dontAsk فقط اقداماتی را اجرا می‌کند که نیازی به تأیید ندارند (مانند خواندن فایل در پوشه کاری و دستورهای فقط‌خواندنی) و اقداماتی که از پیش با قواعد مجاز تأیید شده‌اند؛ بقیه بدون پرسش رد می‌شوند CI/CD و سایر اجراهای بدون نظارت
bypassPermissions نادیده گرفتن همه درخواست‌های اجازه محیط‌های کاملاً ایزوله و مورد اعتماد

حالت auto و QCode: حالت auto از طریق QCode کار می‌کند. درخواست‌های طبقه‌بند توسط خود Claude Code ارسال می‌شوند (مدل پیش‌فرض claude-sonnet-5) و در مصرف شما محاسبه می‌شوند. اگر اعلانی انگلیسی با این مضمون می‌بینید که «your requests go through … which isn't compatible»، یک نشست تعاملی اولین اقدامی را که نیاز به بررسی دارد تا فشردن Enter نگه می‌دارد؛ برای رفع آن CLAUDE_CODE_AUTO_MODE_SERVER=0 را تنظیم کنید. به دسترسی به قابلیت‌ها مراجعه کنید.

تغییر حالت‌های اجازه

  • برای چرخش میان حالت‌های اجازه Shift+Tab را فشار دهید؛ از حالت auto چرخه به این ترتیب است: auto → default → acceptEdits → plan
  • برای ورود به حالت Plan، از حالت دستی (default) دو بار و از حالت auto سه بار Shift+Tab را فشار دهید
  • انتخاب یک حالت هنگام راه‌اندازی: claude --permission-mode acceptEdits
  • انتخاب مستقیم یک حالت از دیالوگ

پیکربندی حالت مجوز پیش‌فرض

در .claude/settings.json (پروژه) یا ~/.claude/settings.json (کاربر) پیکربندی کنید:

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

توجه: "defaultMode": "auto" فقط از فایل ~/.claude/settings.json در سطح کاربر یا تنظیمات مدیریت‌شده سازمان شما اعمال می‌شود. در .claude/settings.json یا .claude/settings.local.json پروژه نادیده گرفته می‌شود و نشست از پیش‌فرض داخلی استفاده می‌کند (نه تنظیم سطح کاربر شما). bypassPermissions نیز از تنظیمات پروژه اعمال نمی‌شود. همچنین گزینه --permission-mode بر فایل‌های تنظیمات اولویت دارد.

قواعد اجازه: تأیید پیشاپیش دستورها

دستورهای مشخصی را از پیش تأیید کنید تا هر بار از شما پرسیده نشود:

{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Bash(git status)",
      "Bash(git add:*)",
      "Bash(git diff:*)"
    ]
  }
}

نحو قواعد اجازه:

  • Bash(command) — تطابق دقیق دستور
  • Bash(prefix:*) — دستورهایی را مطابقت می‌دهد که با پیشوند داده‌شده شروع می‌شوند
  • Read(file path) — اجازه خواندن یک فایل مشخص
  • Write(file path) — اجازه نوشتن در یک فایل مشخص

قواعد رد: محافظت از فایل‌های حساس

از دسترسی یا تغییر فایل‌های حساس توسط Claude جلوگیری کنید:

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

نحو قواعد رد:

  • الگوهای مسیر از نویسه‌های عام * (یک سطح) و ** (چند سطح) پشتیبانی می‌کنند
  • قواعد رد اولویت بالاتری از قواعد اجازه دارند

استفاده هم‌زمان از اجازه و رد

{
  "permissions": {
    "defaultMode": "acceptEdits",
    "allow": [
      "Bash(npm run *)",
      "Bash(git status)",
      "Bash(git diff)"
    ],
    "deny": [
      "Bash(git push:*)",
      "Bash(rm -rf:*)",
      "Read(./.env*)"
    ]
  }
}

سلسله‌مراتب فایل‌های پیکربندی

Claude Code پیکربندی‌های مجوز را به ترتیب اولویت زیر ادغام می‌کند:

اولویت مکان دامنه
بالاترین .claude/settings.local.json (در Git کامیت نشده) بازنویسی‌های محلی شخصی
میانی .claude/settings.json (کامیت‌شده در Git) پیکربندی مشترک تیم
پایین‌ترین ~/.claude/settings.json پیکربندی سراسری کاربر

نکات همکاری تیمی:

  • قواعد اجازه/رد در سطح تیم را در .claude/settings.json قرار دهید و آن را در Git کامیت کنید
  • تنظیمات مخصوص شخصی را در .claude/settings.local.json قرار دهید و آن را به .gitignore اضافه کنید

بهترین شیوه‌ها

1. محافظت از اعتبارنامه‌های حساس

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./credentials/**)",
      "Read(./.ssh/**)"
    ]
  }
}

2. پیکربندی پروژه فرانت‌اند

{
  "permissions": {
    "defaultMode": "acceptEdits",
    "allow": [
      "Bash(npm run dev)",
      "Bash(npm run build)",
      "Bash(npm run test:*)",
      "Bash(npm run lint:*)"
    ]
  }
}

3. خودکارسازی CI/CD

از Claude Code 2.1.285 به بعد، claude -p و Agent SDK وقتی هیچ حالت مجوزی تنظیم نشده باشد در حالت auto شروع می‌شوند، در نشست‌هایی که نمی‌توانند پرچم‌های ویژگی را دریافت کنند. اتصال به QCode با ANTHROPIC_AUTH_TOKEN هیچ اعتبارنامه‌ای برای دریافت آن‌ها به Claude Code نمی‌دهد (همین موضوع برای کانتینرهای CI که در هر اجرا از نو شروع می‌شوند نیز صادق است)، بنابراین این پیش‌فرض CI شماست. در CI، حالت را صریحاً تنظیم کنید. توصیه می‌کنیم dontAsk را همراه با فهرست مجاز به کار ببرید: فقط اقدام‌هایی که به تأیید نیاز ندارند و ابزارهای فهرست‌شده اجرا می‌شوند و هر چیز دیگری رد می‌شود.

claude -p "Run the tests and fix failures" \
  --permission-mode dontAsk \
  --allowedTools "Read,Edit,Bash(npm test)"

یا در تنظیمات پروژه:

{
  "permissions": {
    "defaultMode": "dontAsk",
    "allow": ["Read", "Edit", "Bash(npm test)"]
  }
}

⚠️ هشدار: حالت bypassPermissions همه بررسی‌های امنیتی را نادیده می‌گیرد. فقط در محیط‌های کاملاً ایزوله و قابل‌اعتماد (مانند یک کانتینر یک‌بارمصرف) از آن استفاده کنید.

با QCode شروع کنید

یک کلید API برای Claude Code، Codex و بیشتر — بر اساس توکن، قیمت هر مدل در qcode.cc/models

سازمانی ←