Codex: إعدادات أذونات Codex
آخر تحديث: 2026-08-31
يتمتع Codex بقدرات تشغيلية قوية، لكنها تجلب أيضًا مخاطر أمنية. يغطي هذا الدرس إعدادات الأذونات بالتفصيل، لضمان بقاء عمليات الذكاء الاصطناعي تحت سيطرتك.
📋 المتطلبات المسبقة: معرفة أساسية بإعداد Codex (راجع الدرس 6)
1. ما ستتعلمه
- هرمية نموذج الأذونات
- أوضاع Sandbox الثلاثة بالتفصيل
- إعداد سياسة الموافقة
- حماية العمليات الحساسة
2. نموذج الأذونات
(1) هرمية أذونات العمليات
| مستوى الإذن | النطاق | السلوك الافتراضي |
|---|---|---|
| قراءة | قراءة ملفات المشروع | مسموح تلقائيًا |
| كتابة | تعديل/إنشاء ملفات المشروع | يتطلب تأكيدًا (قابل للإعداد) |
| تنفيذ | تشغيل أوامر shell | يتطلب تأكيدًا |
| شبكة | تثبيت حزم، الوصول إلى APIs | يتطلب تأكيدًا |
| نظام | الوصول إلى أدلة حساسة | يتطلب تأكيدًا |
(2) مستويات المخاطر
| المستوى | أمثلة العمليات | الحماية |
|---|---|---|
| 🟢 منخفض | قراءة ملفات الكود المصدري | مسموح تلقائيًا |
| 🟡 متوسط | تعديل ملفات الكود المصدري | يتطلب تأكيدًا |
| 🟠 عالي | تنفيذ أوامر shell | يتطلب تأكيدًا + عرض الأمر |
| 🔴 حرج | حذف ملفات، الوصول إلى مفاتيح | يتطلب تأكيدًا + تحذير إضافي |
3. أوضاع Sandbox بالتفصيل
(1) للقراءة فقط
BASH
codex --sandbox readonly
| القدرة | الحالة |
|---|---|
| قراءة الملفات | ✅ |
| تعديل الملفات | ❌ |
| تنفيذ الأوامر | ❌ |
| الوصول للشبكة | ❌ |
يُستخدم لـ: مراجعة الكود، تحليل البنية، توليد التوثيق
(2) كتابة مساحة العمل
BASH
codex --sandbox workspace-write
| القدرة | الحالة |
|---|---|
| قراءة الملفات | ✅ |
| تعديل ملفات مساحة العمل | ✅ |
| تنفيذ الأوامر | ⚠️ يتطلب تأكيدًا |
| الوصول للشبكة | ❌ |
يُستخدم لـ: التطوير اليومي (الوضع الافتراضي)
(3) وصول كامل
BASH
codex --sandbox full-access
| القدرة | الحالة |
|---|---|
| قراءة الملفات | ✅ |
| تعديل أي ملف | ✅ |
| تنفيذ الأوامر | ✅ |
| الوصول للشبكة | ✅ |
يُستخدم لـ: سيناريوهات الأتمتة الموثوقة بالكامل (استخدم بحذر)
▶ مثال 1: أليس تختار الوضع حسب السيناريو
PYTHON
def choose_sandbox(task_type):
modes = {
"code_review": "readonly",
"daily_dev": "workspace-write",
"full_migrate": "full-access",
}
return modes.get(task_type, "workspace-write")
# Alice's work today
print(choose_sandbox("code_review")) # readonly
print(choose_sandbox("daily_dev")) # workspace-write
print(choose_sandbox("full_migrate")) # full-access
4. سياسات الموافقة
(1) السياسات الثلاث
| السياسة | السلوك | المخاطر |
|---|---|---|
ask |
سؤال المستخدم كل مرة | الأكثر أمانًا |
approve |
موافقة تلقائية | مخاطر متوسطة |
deny |
رفض تلقائي | الأكثر تحفظًا |
(2) إعداد حسب نوع العملية
TOML
# ~/.codex/config.toml
[approval]
# Shell command approval
shell_commands = "ask"
# File write approval
file_writes = "ask"
# Network access approval
network_access = "deny"
# Sensitive path approval
sensitive_paths = "ask"
(3) قائمة الأوامر المسموحة
TOML
[approval]
shell_commands = "ask"
# Auto-approved safe commands
auto_approve_commands = [
"git status",
"git diff",
"npm test",
"pytest",
"ls",
"cat",
]
# Always-denied dangerous commands
always_deny_commands = [
"rm -rf",
"sudo",
"chmod 777",
"curl * | sh",
]
5. حماية المسارات الحساسة
(1) المسارات المحمية افتراضيًا
TEXT
📖 للعرض فقط
~/.ssh/
~/.gnupg/
/etc/
.env
.env.*
secrets/
credentials/
*.key
*.pem
(2) مسارات محمية مخصصة
TOML
[sandbox]
blocked_paths = [
".env",
".env.production",
"secrets/",
"credentials/",
"config/production.yml",
"*.key",
"*.pem",
]
▶ مثال 2: بوب يحمي إعداد الإنتاج
TOML
# Bob's project sandbox config
[sandbox]
mode = "workspace-write"
allowed_paths = ["src/", "tests/", "docs/"]
blocked_paths = [
".env.production",
"config/prod/",
"secrets/",
"deploy/",
]
6. تدقيق الأذونات
(1) عرض سجل العمليات
BASH
# View all operations in the current session
codex --audit-log
# Output example
[10:30:15] READ src/auth.ts (auto-approved)
[10:30:18] WRITE src/auth.ts (approved by user)
[10:30:22] SHELL npm test (approved by user)
[10:30:25] WRITE test/auth.test.ts (approved by user)
(2) إعداد التدقيق
TOML
[audit]
log_all_operations = true
log_file = "~/.codex/audit.log"
include_shell_output = true
7. أفضل الممارسات
| الممارسة | الوصف |
|---|---|
| الافتراضي لسياسة ask | لا تتحول إلى approve بسهولة |
| تقييد نطاق sandbox | افتح فقط المسارات الضرورية |
| حماية الملفات الرئيسية | أضف .env والمفاتيح إلى blocked_paths |
| مراجعة السجلات بانتظام | تحقق مما نفذه Codex |
| استخدام git كشبكة أمان | التزم قبل السماح لـ Codex بالتعديل — سهل التراجع |
| استخدام deny في CI | ارفض جميع عمليات الكتابة في التكامل المستمر |
❓ أسئلة شائعة
س ما مخاطر وضع Full-access؟
ج يمكن لـ Codex تنفيذ أي أمر، تعديل أي ملف، والوصول إلى الشبكة. إذا أخطأ Codex في التقدير، قد يحذف ملفات مهمة أو ينفذ أوامر خطرة. استخدمه فقط في سيناريوهات موثوقة بالكامل.
س هل يمكنني تبديل سياسات الموافقة أثناء التشغيل؟
ج نعم. خلال جلسة Codex، أدخل
/mode لتبديل الأوضاع، أو أخبر Codex "من الآن فصاعدًا، جميع العمليات تحتاج تأكيدي."س كيف أمنع Codex من الوصول إلى ملفات .env؟
ج أضف
.env و .env.* إلى blocked_paths في إعدادك، واستخدم وضع workspace-write.س هل سينفذ Codex أوامر سرًا؟
ج ليس في وضع ask — جميع العمليات الحساسة تتطلب تأكيدًا أولًا. لكن في وضع approve أو Full Auto، سينفذ Codex تلقائيًا.
س كيف أعرف ما فعله Codex؟
ج فعّل تسجيل التدقيق، أو استخدم
git diff لعرض تغييرات الكود. يعرض Codex أيضًا جميع العمليات في الوقت الفعلي في نافذة المحادثة.📖 ملخص
- هرمية الأذونات: قراءة ← كتابة ← تنفيذ ← شبكة ← نظام
- أوضاع Sandbox الثلاثة: readonly / workspace-write / full-access
- سياسات الموافقة: ask (آمن) / approve (تلقائي) / deny (تحفظي)
- حماية المسارات الحساسة: .env، مفاتيح، إعدادات الإنتاج
- أفضل الممارسات: ask افتراضي + شبكة أمان git + تسجيل تدقيق
📝 تمارين
- أساسي (⭐): إعداد وضع sandbox لكتابة مساحة العمل وحماية ملفات .env.
- متوسط (⭐⭐): إعداد قائمة أوامر مسموحة — موافقة تلقائية على أوامر الاختبار، رفض الأوامر الخطرة.
- متقدم (⭐⭐⭐): تصميم مخطط أذونات على مستوى المؤسسة — أدوار مختلفة بأذونات مختلفة — واكتب مستند مصفوفة أذونات.