وضع الحماية في 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
Gemini CLI: Everything You Need To Know (Full Tutorial)
القناة: lustoykov42:54
Sandboxing in Gemini CLI — official documentation
الوثائق: google-gemini/gemini-cli (GitHub)
الصور مأخوذة من فصل بيئة الحماية في دورة freeCodeCamp؛ وقد تم التحقق من أسماء الرايات والإعدادات والملفات الشخصية مقابل الوثائق الرسمية وملاحظات إصدار v0.61.0.
حقوق الصور: freeCodeCamp.org وlustoykov — استُخدمت التسجيلات كمرجع بصري مع النسبة إلى مصدرها؛ وجميع نصوص الخطوات من إعدادنا.
بيئة حماية لـ Gemini CLI خطوة بخطوة
شغّل أول جلسة داخل بيئة الحماية
- 1
اعرف ما تعزله بيئة الحماية فعلًا
تعزل بيئة الحماية عن نظامك المضيف العمليات التي تجعل وكيل الذكاء الاصطناعي خطِرًا — أوامر الصدفة وكتابة الملفات وطلبات الشبكة. وقد شدّد الإصدار v0.61.0 من Gemini CLI (23 سبتمبر 2026) حدود نظام الملفات للبيئة وعزل حالة وقت التشغيل، مسدّدًا مسارات حقن الأوامر غير المباشرة عبر ملفات البناء والرايات غير الموثوقة.

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

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

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

جلسة معزولة حية: الشارة بجوار Auto (Gemini 3).شاهد عند 146:40
اختر الخدمة الخلفية المناسبة لنظامك
- 5
على macOS استعن بـ Seatbelt المدمج
لا تحتاج macOS إلى حاويات: يغلّف Gemini CLI العملية بـ Seatbelt (عبر sandbox-exec). والملف الشخصي الافتراضي permissive-open يحصر الكتابة في مجلد المشروع بينما يُبقي القراءة والشبكة مفتوحتين. وشدّده عبر متغير البيئة SEATBELT_PROFILE: permissive-proxied أو restrictive-open أو restrictive-proxied أو strict-open أو strict-proxied.
- 6
على Linux أو WSL2 تعرّف على gVisor runsc
يوفر gVisor من Google — أي وقت التشغيل runsc — أقوى عزل متاح: تعمل الحاويات فوق نواة في فضاء المستخدم تعترض كل نداءات النظام. اختره صراحةً بـ GEMINI_SANDBOX=runsc أو "sandbox": "runsc" (لا يُكتشف تلقائيًا أبدًا) وسيشغّل Gemini CLI أمر docker run --runtime=runsc عنك.

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

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

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

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

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

شارة 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 (يتطلب إعادة تشغيل).
