بسم الله الرحمن الرحيم
لماذا الملفات تحفظ في /run/user/1000/doc/… بدل ما تتحمل مباشرة؟
عند استخدام أنظمة لينكس (خاصة بيئات سطح المكتب الحديثة مثل GNOME أو KDE)، قد يلاحظ المستخدم أن بعض الملفات (خصوصًا المرفقات التي تفتح من المتصفح أو من البريد الإلكتروني) يتم فتحها من مسار غريب مثل:
```
/run/user/1000/doc/...
```
بدل ما تُحفظ في مجلد التنزيلات مباشرة (`~/Downloads`).
هذا السلوك ليس خطأ، بل هو آلية أمان حديثة مرتبطة بتقنيات Flatpak و xdgdocumentportal.
الخلفية التقنية
المجلد `/run/user/1000/` هو مساحة عمل مؤقتة (runtime directory) خاصة بالمستخدم الذي له الـ UID = 1000 (أول مستخدم في النظام غالبًا).
هذه المساحة تُنشأ تلقائيًا عند تسجيل الدخول وتُحذف عند تسجيل الخروج.
أي ملف يُخزَّن هنا يكون مؤقت، وليس دائمًا.
ما هو `xdgdocumentportal`؟
هو خدمة وسيطة (portal) تُستخدم من قبل التطبيقات المعزولة (sandboxed apps) مثل تلك المثبتة عبر Flatpak.
مهمتها السماح للتطبيقات بفتح الملفات من النظام أو من تطبيقات أخرى بدون كسر العزل الأمني.
بدل ما يفتح التطبيق الملف الأصلي مباشرة من `/home/user/...`، يتم عمل رابط (bind mount) أو نسخة مؤقتة داخل `/run/user/1000/doc/`.
التطبيق يرى الملف هناك، لكنه فعليًا يشير إلى الملف الأصلي، مع الحفاظ على حدود الصلاحيات.
لماذا هذا ضروري؟
1. الأمان:
تطبيقات Flatpak تعمل داخل "صندوق عزل" (Sandbox).
لا يُسمح لها بالوصول الحر لكل ملفات المستخدم.
لما تفتح ملف (مثلاً PDF من البريد الإلكتروني)، يمر عبر الـ document portal بدل ما يُعطى لها مسار الملف الأصلي مباشرة.
2. إدارة الصلاحيات:
النظام يقرر أي الملفات يُسمح للتطبيق بقراءتها أو كتابتها.
الروابط داخل `/run/user/1000/doc/` يتم إنشاؤها بشكل مُتحكَّم فيه.
3. المؤقتية (Ephemeral):
الملفات داخل `/run/user/1000/doc/` ليست للتخزين الدائم.
لما يُغلق التطبيق أو يُعاد تشغيل الجهاز، تختفي هذه الروابط.
هذا يمنع بقاء نسخ غير ضرورية أو حساسة.
سيناريو عملي
تفتح ملف PDF مرفق من Firefox (مُثبّت كـ Flatpak).
Firefox ما عندوش حق مباشر يفتح `/home/user/Documents/...`.
النظام ينشئ رابط في `/run/user/1000/doc/XXXXXX.pdf` → هذا الرابط يمرر الملف عبر البوابة.
التطبيق (مثلاً Evince أو LibreOffice) يفتح الملف من هناك.
هل هذا يعني أن الملف غير محفوظ؟
لا. الملف الأصلي محفوظ في مكانه الطبيعي (مثلاً في `~/Downloads`).
الموجود في `/run/user/1000/doc/` هو مجرد رابط وسيط (portal reference).
إذا فتحت برنامجك من خارج Flatpak (مثلاً LibreOffice من الحزمة الرسمية apt)، غالبًا يفتح الملف مباشرة من مجلده العادي بدون المرور بهذا المسار.
الفوائد والسلبيات
الفوائد:
أمان أعلى للتطبيقات المعزولة.
منع الوصول غير المصرح به لملفات المستخدم.
تقليل مخاطر الفيروسات أو البرمجيات الخبيثة التي تحاول قراءة كل ملفاتك.
السلبيات:
بعض المستخدمين ينزعجون من المسار الطويل والغريب.
ممكن يحصل ارتباك عند محاولة معرفة مكان الملف الأصلي.
بعض التطبيقات القديمة لا تفهم هذه الروابط المؤقتة.
كيف أتعامل مع الأمر؟
إذا أردت الملف دائمًا في مكان واضح:
→ نزّله يدويًا في `Downloads` أو `Documents`.
إذا ظهر لك الملف في `/run/user/1000/doc/`:
→ غالبًا تقدر تضغط "Save As" من التطبيق وتخزنه بشكل دائم في مكان تختاره.
إذا أردت منع هذه الآلية نهائيًا:
→ لازم تستخدم التطبيقات المثبتة من النظام (Deb, RPM, إلخ) بدل Flatpak، لأنها عادة لا تعتمد على الـ document portal.
الملفات التي تظهر في:
```
/run/user/1000/doc/...
هي نسخ وسيطة مؤقتة تُنشئها خدمة xdgdocumentportal لتمكين التطبيقات المعزولة (مثل Flatpak) من فتح الملفات بشكل آمن.
الملف الأصلي يبقى محفوظًا في مجلد التنزيلات أو المستندات.
الغرض الأساسي هو الأمان والتحكم في الصلاحيات، وليس استبدال مكان الحفظ الحقيقي.
ليست هناك تعليقات:
إرسال تعليق
(( مَا يَلْفِظُ مِنْ قَوْلٍ إِلَّا لَدَيْهِ رَقِيبٌ عَتِيدٌ))