إعدادات الأذونات

اضبط أوضاع الأذونات في Claude Code للتحكم في العمليات التي تتطلب تأكيدًا بشريًا

آخر تحديث 2026-11-13

تحتاج مفتاح API؟ أنشئ حسابًا ←نقاط النهاية وعناوين Base URL ←

في هذه الصفحة

يستخدم Claude Code نظام أذونات للتحكم في العمليات التي تتطلب تأكيدًا من المستخدم. ويضمن ضبط الأذونات على نحو مناسب كلاً من الأمان وكفاءة التطوير.

أوضاع الأذونات

الوضع الوصف حالة الاستخدام
default يطلب الإذن عند أول استخدام لأداة (الوضع اليدوي) التطوير اليومي، مع الموازنة بين الأمان والكفاءة
acceptEdits يوافق تلقائيًا على تعديلات الملفات؛ وتظل العمليات الأخرى تتطلب تأكيدًا المهام التي تتضمن تعديلات متكررة على الملفات
plan تحليل فقط، دون تنفيذ (وضع الخطة)؛ وعندما يكون الوضع التلقائي متاحًا، تُراجع أوامر shell أثناء التخطيط بواسطة المصنّف استكشاف الكود ومراجعته دون الرغبة في أن يجري Claude أي تغييرات
auto يراجع مصنّف الإجراءات التي تحتاج إلى موافقة؛ فتُحظر الإجراءات الخارجة عن الحدود بوضوح، وتعمل البقية دون مطالبة التطوير اليومي مع مقاطعات أقل (الوضع الافتراضي للجلسات التفاعلية منذ Claude Code 2.1.283)
dontAsk يشغّل فقط الإجراءات التي لا تحتاج إلى موافقة (مثل قراءة الملفات في دليل العمل والأوامر المخصصة للقراءة فقط) والإجراءات الموافق عليها مسبقًا وفق قواعد السماح؛ ويُرفض كل ما عدا ذلك دون سؤال CI/CD وغيرها من التشغيلات غير المراقَبة
bypassPermissions تخطَّ جميع مطالبات الأذونات بيئات معزولة بالكامل وموثوقة

الوضع التلقائي وQCode: يعمل الوضع التلقائي عبر 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
  • للدخول إلى وضع الخطة، اضغط Shift+Tab مرتين من الوضع اليدوي (default)، أو ثلاث مرات من auto
  • اختر وضعًا عند التشغيل: 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

المؤسسات ←