نظام تشغيل سطح المكتب الذي يركز على الخصوصية خفيفة الوزن يعتمد على Devuan و LXC. مشروع للتعليم الذاتي ، ومحاولة أخرى لجعل بديل لنظام التشغيل Qubes. هذا ليس توزيعًا بعد وربما لن يفعل ذلك أبدًا. هذه مجموعة من الملفات والتصحيحات ، ونصي makecex بسيط ، وتعليمات à la lfs.
العمل قيد التقدم.
في الوقت الحالي ، يعكس هذا النظام تجربتي ومليئة بالتفضيلات الشخصية. بعضهم لا أساس له من اللازم. أقسم أنني سأتخلص منها بمجرد أن يتجاوز عدد المستخدمين 1.5. لكن بشكل عام ، فإن الأساس المنطقي هو كما يلي:
يمكن إنشاء وسائط قابلة للتمهيد مع نظام مباشر مع MakeCex. ستحتاج إلى PPA يمكن إنشاؤها باستخدام نصوص إعداد وبناء.
يتم دعم وضع التمهيد القديم فقط لـ AMD64 في الوقت الحالي.
يحتوي البرنامج النصي على معلمات في البداية ، قم بمراجعتها بعناية قبل الجري. يمكنك كتابة معلمات معدلة إلى makecex.conf بدلاً من إجراء تغييرات على البرنامج النصي.
مسودات/قسم رمل.
منذ أن انتقلت LXCEX إلى حوامل IDMPED ، أصبحت أذونات الملفات أكثر أهمية. مع uidmapshift لم يكن من الممكن الوصول إلى جميع بيانات الحاويات من مستخدم غير محظوظ على النظام الأساسي. لم يعد هذا هو الحال مع حوامل IDMPED لأن المستخدمين غير المحظوظين عبر النظام الأساسي والحاويات لديهم معرفات شائعة.
تأكد من أن جميع الدلائل الفرعية في /var/lib/lxc لها أذونات الحد الأدنى ولا يمكن قراءتها من قبل other على الأقل. وينطبق الشيء نفسه على بيانات الحاوية المخزنة في مكان آخر.
ومع ذلك ، بالنسبة لتركيبات IDMed ، يجب أن تتضمن الأذونات الدنيا اجتياز الدليل للآخرين. يمكن أن يتم العمل حول هذا باستخدام setfacl ، ولكن هذا الكوميدي يزداد وزن الراحة.
إذا كان كل ما سبق مصدر قلق أمني ، فلا تستخدم حوامل IDMPED.
/dev/ptmx بعد فترة.sh إذا تم تشغيل Weston بواسطة Runit ، حيث تكون shell الأصل sh .lxcex المتشددين ، دع المستخدم لتخصيص ذلك؟uidmapshift في الوقت الحالي. كبديل عن ls -l /var/lib/lxc الذي أظهر معرفات uidmapshift ED ، الحاويات ، يوجد نصي lxcex-idmap الآن يعرض معرفات المستخدم التابعة لكل حاوية تستخدم IDMAP.حسنًا ، إسقاط خط هنا. لا يزال يبدو أنني مستخدم واحد لكل هذا القرف ، وكما يقول أصدقائي الأفارقة ، "Daz جيد!"
الكثير من الميزات مطلوبة. رقم واحد هو التخلص من Runit. رقم اثنين هو UI utils. كل رغبات الآخرين هي مجرد أشياء صغيرة.
حتى الان جيدة جدا. الفصل 8 الجديد خارج.
بعد ثلاثة أشهر من البداية ، والآن أستطيع أن أقول وداعًا ، Linuxmint. LXCEX على جميع أجهزة الكمبيوتر المحمولة الخاصة بي من الآن فصاعدًا.
التحديثات الرئيسية:
معلم آخر: MakeCex خارج! هذا البرنامج النصي يولد الوسائط القابلة للتمهيد. لم يتم اختباره بشكل مفرط ، فهو يعمل فقط بالنسبة لي.
حزم الريبو خارج. في الوقت الحالي ، الحزمة الوحيدة هناك هي uidmapshift. التخطيط لإضافة نسخة مصححة من libpulse ، وبالتالي التخلص من مثبت إذن الملفات.
على الرغم من أن الموت من الضحك ليس هدفي النهائي ، إلا أنني اضطررت إلى إضافة مفتاح التوقيع بالنسبة لي ، مجهول الهوية.
الأتمتة في الطريق. بدأت بعد أن تمكنت من تعطل النظام ببساطة عن طريق إعادة توصيل/var/lib/lxc مع حاويات تشغيل. لم يدرك أنه خطير للغاية. دمر هذا الإجراء جميع الأقسام المثبتة بما في ذلك النسخ الاحتياطي USB عصا التي لا علاقة لها بذلك. لماذا؟؟؟
تلعب الموسيقى! الإصدار الأولي من الفصل 6 خارج ، ليتم تحديثه.
بيئة سطح المكتب XFCE تعمل!
العلامة: 0.0.2
الالتزام والإفراج الأولي.
قد تتساءل عن كيفية إصدار apt upgrade لعشرات الحاويات بما في ذلك النظام الأساسي. هذا ما هو البرنامج النصي Distrage. يعتمد على LXCEX-chroot الذي يدير أمرًا تعسفيًا ، بشكل صحيح إلى جذر الحاوية.
لقد قاموا بتسليم مستودع مستودع ، لذلك من المفيد اتباع تعليماتهم
في وقت كتابة هذا التقرير ، يستخدم Firefox (الإصدار 123) Wayland افتراضيًا. إذا كنت تتذكر ، تتم إعادة تعيين Wayland_Display في /home/user/.config/sv/xfce4/run وهذا يجعل Firefox للدخول إلى حلقة Infinite قائلاً
Warning: ConnectToCompositor() try again : Connection refused
هناك خياران:
حاولت كلاهما. في البداية اخترت هذا الأخير ، باستخدام البرنامج النصي:
#!/bin/sh
if [ -n "$X_WAYLAND_DISPLAY" ] ; then
export WAYLAND_DISPLAY=$X_WAYLAND_DISPLAY
else
# fallback
export WAYLAND_DISPLAY=wayland-1
fi
firefox
ومع ذلك ، فإن هذا يجعل نسخ الزبق مزعجًا ، لذا عدت إلى وضع X في الوقت الحالي.
كانت الإعدادات الأولية الخاصة بي غريبة وهشة ببساطة بسبب عدم فهم القطع الفرعية المشتركة.
هذا هو الحل:
جعل بعض جبل نقطة مشتركة بشكل متكرر. لا يمكنك إنشاء دليل تعسفي في نظام الملفات المشوش (كان هذا هو وجهة نظري في سوء الفهم) ، يجب أن يكون نقطة تثبيت فعلية ، أي دليل يتم تثبيت بعض نظام الملفات.
أرغب في استخدام /mnt/autofs ل autofs ، لذلك دعونا نربط TMPFS هناك و rshare:
mkdir -p /mnt/autofs
mount -t tmpfs -o size=64K --make-rshared tmpfs /mnt/autofs
mkdir /mnt/autofs/myserver
إنشاء تكوين AutoFS:
mkdir /etc/auto.maps
echo "/mnt/autofs/myserver /etc/auto.maps/myserver" >/etc/auto.master.d/myserver.autofs
echo "shared-dir myserver.example.com:/var/share/top-secret" >/etc/auto.maps/myserver
وإعادة تشغيل السيارات.
أضف السطر التالي إلى تكوين الحاوية:
lxc.mount.entry = /mnt/autofs mnt/autofs none create=dir,rbind 0 0
ابدأ الحاوية. في الداخل ، يجب أن يعمل ls /mnt/myserver/shared-dir كما هو متوقع.
ومع ذلك ، فإن المستخدم: لن تكون المجموعة لا أحد: Nogroup وليس لدي أي فكرة عن كيفية إعداد تعيين معرف صحيح.
menulibre يبدو نوعا ما bloatware وهو حاليا مكسور تماما في excalibur. ومع ذلك ، من السهل جدًا تحرير القوائم يدويًا:
.config/menus/xfce-applications.menu.local/share/applicationsتعد الحاويات رائعة لعزل مساحات العمل كما لو كانت تعمل على آلات منفصلة. هذا يبسط إلى حد كبير أشياء مثل الشبكات التي تعرضها الأخطاء أو المستحيل في نظام واحد.
ولكن على مستوى الحاوية ، لا يزال كل شيء كما هو: دليل منزلي واحد حيث يمكن لجميع التطبيقات الوصول الكامل إلى بيانات المستخدم.
هذا أمر خطير. من المحتمل أن كل برنامج يستخدم الشبكة قد يتسرب بياناتك الحساسة ، حتى بشكل غير شائع.
في الأساس ، يجب تشغيل جميع البرامج التي تعمل مع بياناتك في حاوية ذات شبكات معطلة ، وربما سأنتهي بهذا الترتيب.
ولكن في الوقت الحالي ، لدي بعض بيئات XFCE القديمة التي يتم تشغيل كل منها في الحاوية الخاصة بها. الحل المؤقت الذي قمت بنشره داخل هذه الحاويات هو محظور الوصول إلى الشبكة للمستخدم الرئيسي وتشغيل جميع برامج الشبكات كمستخدمين مختلفين. يتضمن هذا البرنامج متصفحات Firefox و Chromium و Mullvad و Tor ، بالإضافة إلى Thunderbird. بطبيعة الحال ، فإن البعض يدعم Wayland بالفعل ولكن LXCEX لا يزال لديه مشكلات في عملية نسخ ، ومن عامل الحظر لتشغيلها أصليًا.
فيما يلي الإعداد ، على مثال Firefox ، والذي يمكن استخدامه كخليفي للبرامج الأخرى.
أولاً ، قم بإنشاء مستخدم منفصل:
useradd -g users --skel /etc/skel --shell /bin/bash --create-home firefox
ثم ، نقل الدلائل:
mkdir /home/firefox/.cache
mv /home/user/.mozilla /home/firefox/
mv /home/user/.cache/firefox /home/firefox/.cache/
chown -R firefox /home/firefox
بعد ذلك ، قم بإعداد نص /usr/local/bin/start-firefox :
#!/bin/sh
USER=firefox
if [ -z "$1" ] ; then
xhost +SI:localuser:$USER
exec sudo $0 dosu
elif [ "$1" = "dosu" ] ; then
exec su -l -c "$0 run" $USER
elif [ "$1" = "run" ] ; then
cd /home/$USER
. /usr/local/share/lxcex-xdg.sh
export DISPAY=:0.0
exec firefox --display=:0.0
fi
في الواقع ، لا يعد متغير بيئة DISPLAY ضروريًا هنا ، ولكن يمكن استخدام هذا البرنامج النصي كخليفي لشراء تطبيقات أخرى ، لذلك تركته عن قصد.
أخيرًا ، create /etc/sudoers.d/50-start-firefox (للأسف ، مطلوب sudo):
user ALL = NOPASSWD: /usr/local/bin/start-firefox dosu
قد تحتاج إلى تعديل إدخال قائمة بدء XFCE. ولإضافة خيار -P لأول مرة ، قد يبدأ Firefox بملف تعريف فارغ.
من الجيد مشاركة دليل Downloads . كان النهج السابق دليلًا قابلًا للكتابة مع مجموعة من الارتباطات ، ولكن أفضل طريقة هي lxces-share .
دع Downloads direcroty تكون في الدليل الرئيسي user ، كما كان عليه الحال. ثم ، قم بإنشاء sharetab التالي للحاوية:
/var/lib/lxc/<container-name>/rootfs/home/user/Downloads firefox /home/firefox/Downloads
واستخدم السنانير في تكوين الحاوية ، كما هو موضح في الفصل 8:
lxc.hook.pre-start = /usr/local/bin/lxcex-share
lxc.hook.mount = /usr/local/bin/lxcex-share
lxc.hook.start = /usr/local/bin/lxcex-share
lxc.hook.post-stop = /usr/local/bin/lxcex-share
اكتشف هذا المقال عندما كتب الفصل 6: https://discuss.linuxcontainers.org/t/audio-via-pulseaudio-inside-container/8768 يستخدمون LXD ويستحق إلقاء نظرة على توصيلات توصيل OD. هل يمكننا استخدامها للاحتفاظ بمقبس الحاويات وإعادة الاتصال بمقبس المضيف عند إعادة تشغيل الملحن الأساسي؟ أو عندما تستأنف الحاوية من السبات؟
مرة أخرى،
لم أفهم لماذا اضطررت إلى ذلك
mount --make-shared /run IE /run ، لا /run/user إذا قمت mount --rbind /run/user "${LXC_ROOTFS_MOUNT}/run/host/run/user" في الحاويات وأراد انتشار جميع حالات Submouts.
بعد إعادة قراءة ذلك ، يجب أن يكون الأمر واضحًا ، في النهاية.
smartd هي الأداة الأكثر موثوقية لتعطيل spindowns HDD حتى الآن:
/etc/default/smartmontools : smartd_opts="--interval=10 --attributelog=- --savestate=-"
--interval ، والبعض الآخر يعطل حالة الادخار التي لم أكن بحاجة إليها أبدًا.-n الخيار never في etc/smartd.conf ، أي: DEVICESCAN -d removable -n never -m root -M exec /usr/share/smartmontools/smartd-runner
حزمتي الإضافية ، فقط للسجل.
gnome-font-viewer ، تبدو غير ضروريةgthumbbreeze-icon-theme .systemsettings : مثبت فقط في حالة ، صفر ربح حتى الآن.libnss3 ، libasound2