Deepseek ArtifactsDeepseek Artifacts
دليل مصوّر · محدَّث للإصدار v0.61.0

وضع الحماية في Gemini CLI: التفعيل، والخدمات الخلفية، وأمان YOLO

دليل مصوّر مباشر بلا حشو لبيئة الحماية في Gemini CLI: شغّلها بـ -s، واجعلها دائمة، واختر الخدمة الخلفية المناسبة لنظامك، وامنح وضع YOLO سياج أمان.

الخلاصة السريعة

  • نفّذ gemini -s وتعمل الجلسة كاملة — أوامر الصدفة وتعديلات الملفات وطلبات الشبكة — داخل بيئة حماية معزولة؛ وتظهر شارة sandbox في الشريط السفلي لتتأكد أنها فعّالة.
  • ثلاث طرق للتفعيل تُطبَّق بحسب أولويتها: الراية -s / --sandbox، ثم متغير البيئة GEMINI_SANDBOX، ثم "sandbox": true داخل كائن tools في settings.json.
  • الخدمة الخلفية تختلف بحسب النظام: ملفات Seatbelt على macOS (الافتراضي permissive-open)، وgVisor runsc على Linux لأقوى عزل، وحاويات Docker أو Podman فيما عدا ذلك.
  • وضع YOLO (--yolo) يتخطى كل طلبات الأذونات — اقرنه ببيئة الحماية. وقد شدّد الإصدار v0.61.0 (23 سبتمبر 2026) حدود نظام الملفات للبيئة المعزولة وعزل حالة وقت التشغيل.

Gemini CLI Essentials – Full Course (sandboxing chapter)

القناة: freeCodeCamp.org3:49:40

افتح على YouTube

Gemini CLI: Everything You Need To Know (Full Tutorial)

القناة: lustoykov42:54

افتح على YouTube

Sandboxing in Gemini CLI — official documentation

الوثائق: google-gemini/gemini-cli (GitHub)

افتح على YouTube

الصور مأخوذة من فصل بيئة الحماية في دورة freeCodeCamp؛ وقد تم التحقق من أسماء الرايات والإعدادات والملفات الشخصية مقابل الوثائق الرسمية وملاحظات إصدار v0.61.0.

حقوق الصور: freeCodeCamp.org وlustoykov — استُخدمت التسجيلات كمرجع بصري مع النسبة إلى مصدرها؛ وجميع نصوص الخطوات من إعدادنا.

بيئة حماية لـ Gemini CLI خطوة بخطوة

شغّل أول جلسة داخل بيئة الحماية

  1. 1

    اعرف ما تعزله بيئة الحماية فعلًا

    تعزل بيئة الحماية عن نظامك المضيف العمليات التي تجعل وكيل الذكاء الاصطناعي خطِرًا — أوامر الصدفة وكتابة الملفات وطلبات الشبكة. وقد شدّد الإصدار v0.61.0 من Gemini CLI (23 سبتمبر 2026) حدود نظام الملفات للبيئة وعزل حالة وقت التشغيل، مسدّدًا مسارات حقن الأوامر غير المباشرة عبر ملفات البناء والرايات غير الموثوقة.

    Course slide explaining that Gemini CLI sandboxing relies on OS-level sandboxing libraries — gVisor and runsc or LXC/LXD on Linux WSL2, Seatbelt on macOS, and Docker or Podman containers
    موقع بيئة الحماية: مكتبة عزل على مستوى نظام التشغيل تُختار لكل منصة.شاهد عند 140:00
  2. 2

    انطلق مباشرة داخل البيئة بالراية

    أسرع طريق هو راية سطر الأوامر: نفّذ gemini -s (والصيغة الكاملة --sandbox). قد يستغرق التشغيل الأول دقيقة لأن صورة البيئة قد تحتاج إلى التنزيل. وللتنفيذات الفردية اربطها بطلب: gemini -s -p "analyze the code structure".

    Gemini CLI course slide showing the gemini --sandbox launch command next to a terminal footer where a sandbox version chip confirms the session is sandboxed
    الراية مفعّلة والشارة ظاهرة في الأسفل — فحص سلامة من ثانيتين.شاهد عند 140:50
  3. 3

    افهم طرق التفعيل الثلاث — وأيها يغلب

    يحلّ Gemini CLI إعداد البيئة بحسب الأولوية: أولًا راية الأمر -s / --sandbox، ثم متغير البيئة GEMINI_SANDBOX (القيم true أو docker أو podman أو sandbox-exec أو runsc أو lxc)، ثم عنصر "sandbox" داخل كائن tools في ملف settings.json.

    Official Gemini CLI documentation Sandboxing section listing the three ways to enable the sandbox: the -s flag, the GEMINI_SANDBOX environment variable, or the sandbox setting in settings.json
    تسرّد الوثائق الرسمية طرق التفعيل الثلاث مرتبةً بالأولوية.شاهد عند 145:45
  4. 4

    أكّد من الشريط السفلي أن الجلسة معزولة

    بعد إقلاع الواجهة، يظهر في شريط الحالة السفلي شارة sandbox تحمل رقم إصدارها بجوار مُنتقي النموذج مباشرة. غياب الشارة يعني غياب البيئة — عُد وتحقق من الراية أو الإعداد الذي ظننتَه مفعِّلًا لها.

    Gemini CLI session footer showing the sandbox version chip next to the Auto Gemini 3 model selector while the agent thinks inside the sandbox
    جلسة معزولة حية: الشارة بجوار Auto (Gemini 3).شاهد عند 146:40

اختر الخدمة الخلفية المناسبة لنظامك

  1. 5

    على macOS استعن بـ Seatbelt المدمج

    لا تحتاج macOS إلى حاويات: يغلّف Gemini CLI العملية بـ Seatbelt (عبر sandbox-exec). والملف الشخصي الافتراضي permissive-open يحصر الكتابة في مجلد المشروع بينما يُبقي القراءة والشبكة مفتوحتين. وشدّده عبر متغير البيئة SEATBELT_PROFILE: permissive-proxied أو restrictive-open أو restrictive-proxied أو strict-open أو strict-proxied.

  2. 6

    على Linux أو WSL2 تعرّف على gVisor runsc

    يوفر gVisor من Google — أي وقت التشغيل runsc — أقوى عزل متاح: تعمل الحاويات فوق نواة في فضاء المستخدم تعترض كل نداءات النظام. اختره صراحةً بـ GEMINI_SANDBOX=runsc أو "sandbox": "runsc" (لا يُكتشف تلقائيًا أبدًا) وسيشغّل Gemini CLI أمر docker run --runtime=runsc عنك.

    Gemini CLI documentation page for the gVisor runsc sandbox backend, the strongest Linux-only isolation that runs containers inside a user-space kernel
    تصف الوثائق runsc بأنه الأقوى والخاص بـ Linux حصرًا.شاهد عند 141:20
  3. 7

    ثبّت وقت تشغيل runsc

    على Ubuntu — أصيلًا أو داخل WSL2 — يكفي أمر apt واحد لجلب وقت التشغيل: sudo apt get install runsc. ويجب أيضًا تثبيت Docker وتشغيله، لأن Gemini CLI يقود runsc بوصفه وقت تشغيل لـ Docker لا كأداة مستقلة.

    WSL2 Ubuntu terminal in VS Code running sudo apt get install runsc to set up the gVisor runtime for Gemini CLI sandbox mode
    كتابة أمر التثبيت في طرفية WSL2 Ubuntu.شاهد عند 143:35
  4. 8

    تحقق من اكتمال التثبيت

    يفكّ apt حزمة runsc مباشرة من مستودع التحديثات الأمنية في Ubuntu — دون PPA إضافي. فإن تخطيت هذه الخطوة فشل لاحقًا أمر gemini -s على Linux أو تراجع بصمت إلى الحاويات؛ لذا تحقق من الحزمة قبل أول تشغيل معزول.

    apt output finishing the runsc package install on Ubuntu 24.04, the gVisor runtime that backs Gemini CLI sandbox containers on Linux
    ينهي apt فك حزمة runsc على Ubuntu 24.04.شاهد عند 144:15
  5. 9

    تفضّل الحاويات؟ Docker أو Podman على أي نظام

    تعمل بيئة الحماية القائمة على الحاويات أينما اشتغل Docker أو Podman، ويجب تثبيت كليهما وتشغيله قبل البدء — نفّذ docker مرة واحدة للتأكد من استجابة الواجهة. تستخدم البيئة افتراضيًا صورة ghcr.io/google/gemini-cli:latest وتُحمِّل مجلد عملك على المسار المطلق نفسه تمامًا داخل الحاوية.

    Docker CLI global options printed in a VS Code terminal to confirm the Docker engine is installed and answering before enabling container-based Gemini CLI sandboxing
    تشغيل docker مرة واحدة للتأكد من استجابة المحرك.شاهد عند 145:30

شغّل وضع YOLO دون قلق

  1. 10

    اقرن البيئة المعزولة بوضع YOLO

    الأمر gemini --yolo (اختصار --approval-mode=yolo) يتخطى بخطورة كل طلبات الأذونات — وهذا بالضبط ما تحتاجه التشغيلات الذاتية، وبالضبط ما وُجدت البيئة المعزولة لأجله. شغّل جلسات YOLO مع راية البيئة حتى تبقى الأذونات المتخطاة داخل العزل.

    Slide introducing Gemini CLI YOLO mode where the --yolo or --approval-mode=yolo flag dangerously skips every permission prompt
    وضع YOLO في شريحة واحدة: بلا مقاطعات، وجميع الأذونات تُمرَّر.شاهد عند 148:20
  2. 11

    تحقق من بقاء التشغيلات الذاتية داخل البيئة

    خلال جلسات YOLO يعرض الشريط السفلي شارة YOLO Mode زرقاء — إشارة إلى أن الأذونات تُتخطى. وبعد التشغيل يعرض ملخص /stats أي الأدوات استُخدمت، وتبقى شارة البيئة دليلك على أن العمل جرى داخل الصندوق.

    Gemini CLI interaction summary in VS Code with the blue YOLO Mode badge glowing in the status footer after an autonomous session
    شارة YOLO Mode في الشريط السفلي لجلسة ذاتية منتهية.شاهد عند 147:40

صور بيئة مخصصة ورايات حاويات

صورة الحاوية الافتراضية تكفي للعمل البرمجي العام. وحين يحتاج مشروعك إلى سلسلة أدوات خاصة — أو عندما تعاندك بيئة الحاويات — يمنحك Gemini CLI أربع مقابض ضبط.

  • 1أشر إلى أي صورة: اضبط GEMINI_SANDBOX_IMAGE أو استخدم الصيغة الكائنية في settings.json — "sandbox": "command": "docker", "image": "..." (a JSON object). وتصلح أي صورة Docker أو Podman تتضمن bash.
  • 2ابنِ صورتك: ضع ملف .gemini/sandbox.Dockerfile في جذر المشروع وشغّل مع BUILD_SANDBOX=1 وسيبني Gemini CLI الصورة تلقائيًا. البناء التلقائي لا يعمل إلا عند تشغيل الواجهة من المصدر؛ أما تثبيتات npm فأنسب لها صورة مبنية مسبقًا.
  • 3اضبط أمر الحاوية: تُدخل SANDBOX_FLAGS رايات إضافية إلى docker/podman — مثلًا يعالج export SANDBOX_FLAGS="--security-opt label=disable" رفض SELinux لتحميلات الأقراص على Podman.
  • 4أصلح ملكية الملفات على Linux: تُدير البيئة أذونات المستخدم تلقائيًا، لكن SANDBOX_SET_UID_GID=true تفرض UID/GID للمضيف إذا خرجت الملفات بمالك خاطئ.

تشغّل Gemini CLI نفسه داخل حاوية وتريد بيئة حماية بداخلها؟ حمّل /var/run/docker.sock حتى تستطيع الواجهة إنشاء حاويات شقيقة عبر خدمة المضيف، واجعل مسار مساحة العمل مطابقًا تمامًا للمسار المطلق على المضيف — فمن يحلّ تحميلات الأقراص هو خدمة المضيف لا الحاوية.

استكشاف الأخطاء: الأعطال والوصول للملفات والإيقاف

أغلب مشاكل البيئة تعود إلى خمسة أنماط. وقبل أي شيء أعد إنتاج المشكلة بمخرجات التصحيح: DEBUG=1 gemini -s -p "your prompt".

  • 1"Operation not permitted" — يحتاج الأمر وصولًا إلى خارج البيئة. انتقل إلى ملف شخصي أكثر تساهلًا (على macOS: SEATBELT_PROFILE) أو أضف نقاط التحميل المطلوبة.
  • 2أوامر مفقودة داخل البيئة — ادمج أدواتك في صورة مخصصة أو ثبّتها عبر sandbox.bashrc. وتذكّر أن البناء التلقائي BUILD_SANDBOX لمصادر الشيفرة فقط.
  • 3فشل الشبكة — تحقق أن الملف الشخصي الحالي يسمح بالشبكة أصلًا وافحص إعدادات البروكسي؛ أما الملفات ذات اللاحقة -proxied فتمرّر الحركة عبر بروكسي البيئة.
  • 4ملفات تُنشأ بمالك خاطئ على Linux — بدّل SANDBOX_SET_UID_GID (الأولى true تفرض UID/GID للمضيف، وfalse تعطل المطابقة).
  • 5ملفات Windows متبقية بعلامة تكامل منخفضة — تستخدم البيئة الأصلية icacls لوسم المسارات القابلة للكتابة؛ أعدها بأمر icacls "C:\path\to\dir" /setintegritylevel Medium.

لترى ما تستطيع البيئة الوصول إليه، اسأل الواجهة نفسها: يسرّد gemini -s -p "run shell command: env | grep SANDBOX" متغيرات البيئة، ويظهر mount | grep workspace نقاط التحميل. لا حاجة لخطوة تصدير للملفات — فبيئات الحاويات توصل مشروعك بالمسار المطلق نفسه، فتقع التعديلات مباشرة في مجلدك. وللإيقاف: احذف راية -s أو أزل GEMINI_SANDBOX أو احذف عنصر "sandbox" من settings.json؛ ولحماية مستوى الأدوات مفتاح مستقل هو "security": "toolSandboxing": false (يتطلب إعادة تشغيل).

أسئلة شائعة عن بيئة حماية Gemini CLI

أدلة ذات صلة