إصدار مدير نظام systemd 242

[رو]

بعد شهرين من التطوير المقدمة الافراج عن مدير النظام systemd 242. من بين الابتكارات، يمكننا ملاحظة دعم أنفاق L2TP، والقدرة على التحكم في سلوك تسجيل الدخول إلى النظام عند إعادة التشغيل من خلال متغيرات البيئة، ودعم أقسام التمهيد XBOOTLDR الموسعة للتثبيت / التمهيد، والقدرة على التمهيد باستخدام قسم جذر في التراكبات، بالإضافة إلى عدد كبير من الإعدادات الجديدة لأنواع مختلفة من الوحدات.

التغييرات الرئيسية:

  • يوفر systemd-networkd الدعم لأنفاق L2TP؛
  • يوفر sd-boot وbootctl الدعم لأقسام XBOOTLDR (محمل التمهيد الممتد) المصممة ليتم تثبيتها على /boot، بالإضافة إلى أقسام ESP المثبتة على /efi أو /boot/efi. يمكن الآن تشغيل النواة والإعدادات وصور initrd وEFI من قسمي ESP وXBOOTLDR. يتيح لك هذا التغيير استخدام أداة تحميل التشغيل sd-boot في سيناريوهات أكثر تحفظًا، عندما يكون محمل التشغيل نفسه موجودًا في ESP، ويتم وضع النوى المحملة وبيانات التعريف المرتبطة بها في قسم منفصل؛
  • تمت إضافة القدرة على التمهيد باستخدام خيار "systemd.volatile=overlay" الذي تم تمريره إلى النواة، والذي يسمح لك بوضع القسم الجذر في التراكبات وتنظيم العمل أعلى صورة للقراءة فقط من الدليل الجذر مع التغييرات المكتوبة على ملف دليل منفصل في tmpfs (يتم فقدان التغييرات في هذا التكوين بعد إعادة التشغيل). وقياسًا على ذلك، أضاف systemd-nspawn خيار "--volatile=overlay" لاستخدام وظائف مماثلة في الحاويات؛
  • أضاف systemd-nspawn خيار "--oci-bundle" للسماح باستخدام حزم وقت التشغيل لتوفير إطلاق معزول للحاويات التي تتوافق مع مواصفات مبادرة الحاوية المفتوحة (OCI). للاستخدام في سطر الأوامر ووحدات nspawn، يُقترح دعم الخيارات المتنوعة الموضحة في مواصفات OCI، على سبيل المثال، يمكن استخدام خيارات "--inaccessible" و"Inaccessible" لاستبعاد أجزاء من نظام الملفات، و" تمت إضافة خيارات --console لتكوين تدفقات الإخراج القياسية و"-pipe"؛
  • تمت إضافة القدرة على التحكم في سلوك تسجيل دخول النظام من خلال متغيرات البيئة: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP،
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU و
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. باستخدام هذه المتغيرات، يمكنك توصيل معالجات عملية إعادة التشغيل الخاصة بك (/run/systemd/reboot-to-firmware-setup، و/run/systemd/reboot-to-boot-loader-menu و
    /run/systemd/reboot-to-boot-loader-entry) أو تعطيلها تمامًا (إذا تم ضبط القيمة على false)؛

  • تمت إضافة الخيارات "-boot-load-menu =" و
    "—boot-loader-entry="، مما يسمح لك بتحديد عنصر قائمة تمهيد محدد أو وضع تمهيد بعد إعادة التشغيل؛

  • تمت إضافة أمر عزل Sandbox جديد "RestrictSUIDSGID="، والذي يستخدم seccomp لمنع إنشاء ملفات ذات علامات SUID/SGID؛
  • التأكد من تطبيق قيود "NoNewPrivileges" و"RestrictSUIDSGID" بشكل افتراضي في الخدمات مع وضع إنشاء معرف المستخدم الديناميكي (تمكين "DynamicUser")؛
  • تم تغيير الإعداد الافتراضي MACAddressPolicy=الإعداد المستمر في ملفات .link لتغطية المزيد من الأجهزة. لا تعرف واجهات جسور الشبكة والأنفاق (tun، Tap) والروابط المجمعة (bond) نفسها إلا من خلال اسم واجهة الشبكة، لذلك يُستخدم هذا الاسم الآن كأساس لربط عناوين MAC وIPv4. بالإضافة إلى ذلك، تمت إضافة الإعداد "MACAddressPolicy=random"، والذي يمكن استخدامه لربط عناوين MAC وIPv4 بالأجهزة بترتيب عشوائي؛
  • لم تعد ملفات الوحدة ".device" التي تم إنشاؤها عبر systemd-fstab-generator تتضمن وحدات ".mount" المقابلة كتبعيات في قسم "Wants=". إن توصيل جهاز ببساطة لن يؤدي إلى تشغيل وحدة للتركيب تلقائيًا، ولكن لا يزال من الممكن تشغيل هذه الوحدات لأسباب أخرى، مثل كجزء من local-fs.target أو كاعتماد على وحدات أخرى تعتمد على local-fs.target ;
  • تمت إضافة دعم للأقنعة ("*"، وما إلى ذلك) لأوامر "networkctl list/status/lldp" لتصفية مجموعات معينة من واجهات الشبكة حسب جزء من اسمها؛
  • يتم الآن تعيين متغير البيئة $PIDFILE باستخدام المسار المطلق الذي تم تكوينه في الخدمات عبر المعلمة "PIDFile=;".
  • تمت إضافة خوادم Cloudflare العامة (1.1.1.1) إلى عدد خوادم DNS الاحتياطية المستخدمة إذا لم يتم تعريف DNS الرئيسي بشكل صريح. لإعادة تعريف قائمة خوادم DNS الاحتياطية، يمكنك استخدام خيار "-Ddns-servers="؛
  • عند اكتشاف وجود وحدة تحكم جهاز USB، يتم تشغيل معالج usb-gadget.target الجديد تلقائيًا (عند تشغيل النظام على جهاز طرفي USB)؛
  • بالنسبة لملفات الوحدة، تم تنفيذ الإعداد "CPUQuotaPeriodSec="، الذي يحدد الفترة الزمنية المتعلقة بقياس الحصة الزمنية لوحدة المعالجة المركزية، والتي تم ضبطها من خلال الإعداد "CPUQuota="؛
  • بالنسبة لملفات الوحدة، تم تنفيذ الإعداد "ProtectHostname="، والذي يحظر على الخدمات تغيير المعلومات حول اسم المضيف، حتى لو كانت لديها الأذونات المناسبة؛
  • بالنسبة لملفات الوحدة، تم تنفيذ الإعداد "NetworkNamespacePath ="، والذي يسمح لك بربط مساحة الاسم بالخدمات أو وحدات المقبس عن طريق تحديد المسار إلى ملف مساحة الاسم في الملف pseudo-FS /proc؛
  • تمت إضافة القدرة على تعطيل استبدال متغيرات البيئة للعمليات التي تم إطلاقها باستخدام إعداد "ExecStart=" عن طريق إضافة حرف ":" قبل أمر البدء؛
  • بالنسبة للمؤقتات (وحدات الموقت) علامات جديدة "OnClockChange =" و
    "OnTimezoneChange ="، والذي يمكنك من خلاله التحكم في استدعاء الوحدة عندما يتغير وقت النظام أو المنطقة الزمنية؛

  • تمت إضافة إعدادات جديدة "ConditionMemory=" و"ConditionCPUs="، والتي تحدد شروط استدعاء الوحدة اعتمادًا على حجم الذاكرة وعدد مراكز وحدة المعالجة المركزية (على سبيل المثال، لا يمكن تشغيل خدمة كثيفة الموارد إلا إذا كان المقدار المطلوب من ذاكرة الوصول العشوائي متاحة)؛
  • تمت إضافة وحدة time-set.target جديدة تقبل وقت النظام المحدد محليًا، دون استخدام التسوية مع خوادم الوقت الخارجية باستخدام وحدة time-sync.target. يمكن استخدام الوحدة الجديدة من خلال الخدمات التي تحتاج إلى دقة الساعات المحلية غير المتزامنة؛
  • تمت إضافة خيار "--show-transaction" إلى "systemctl start" وأوامر مماثلة، عند تحديدها، يتم عرض ملخص لجميع الوظائف المضافة إلى قائمة الانتظار بسبب العملية المطلوبة؛
  • يطبق systemd-networkd تعريف الحالة "الاستعبادية" الجديدة، المستخدمة بدلاً من "المنخفضة" أو "الناقل" لواجهات الشبكة التي تعد جزءًا من الروابط المجمعة أو جسور الشبكة. بالنسبة للواجهات الأساسية، في حالة حدوث مشكلات في أحد الوصلات المركبة، تتم إضافة حالة "الحامل المتدهور"؛
  • تمت إضافة خيار "IgnoreCarrierLoss=" إلى وحدات .network لحفظ إعدادات الشبكة في حالة فقدان الاتصال؛
  • من خلال الإعداد "RequiredForOnline=" في وحدات .network، يمكنك الآن تعيين الحد الأدنى المقبول لحالة الارتباط المطلوبة لنقل واجهة الشبكة إلى "online" وتشغيل معالج systemd-networkd-wait-online؛
  • تمت إضافة خيار "--any" إلى systemd-networkd-wait-online لانتظار جاهزية أي من واجهات الشبكة المحددة بدلاً من الكل، بالإضافة إلى خيار "--operational-state=" لتحديد حالة الرابط الذي يشير إلى الاستعداد؛
  • تمت إضافة إعدادات "UseAutonomousPrefix=" و"UseOnLinkPrefix=" إلى وحدات .network، والتي يمكن استخدامها لتجاهل البادئات عند الاستلام
    إعلان من جهاز توجيه IPv6 (RA، إعلان جهاز التوجيه)؛

  • في وحدات الشبكة.، تمت إضافة إعدادات "MulticastFlood="، و"NeighborSuppression=" و"Learning=" لتغيير معلمات التشغيل لجسر الشبكة، بالإضافة إلى إعداد "TripleSampling=" لتغيير وضع TRIPLE-SAMPLING من الواجهات الافتراضية CAN؛
  • تمت إضافة إعدادات "PrivateKeyFile=" و"PresharedKeyFile=" إلى وحدات ‎.netdev، والتي يمكنك من خلالها تحديد المفاتيح الخاصة والمشتركة (PSK) لواجهات WireGuard VPN؛
  • تمت إضافة خيارات Same-cpu-crypt و Submit-from-crypt-cpus إلى /etc/crypttab، والتي تتحكم في سلوك المجدول عند ترحيل العمل المتعلق بالتشفير بين مراكز وحدة المعالجة المركزية؛
  • يوفر systemd-tmpfiles معالجة ملفات القفل قبل تنفيذ العمليات في الدلائل ذات الملفات المؤقتة، مما يسمح لك بتعطيل العمل على تنظيف الملفات القديمة لمدة إجراءات معينة (على سبيل المثال، عند تفريغ أرشيف tar في /tmp، قد تكون الملفات القديمة جدًا مفتوح لا يمكن حذفه قبل نهاية الإجراء معهم)؛
  • يوفر الأمر "systemd-analyze cat-config" القدرة على تحليل التكوين المقسم إلى عدة ملفات، على سبيل المثال، الإعدادات المسبقة للمستخدم والنظام، ومحتويات tmpfiles.d وsysusers.d، وقواعد udev، وما إلى ذلك.
  • تمت إضافة خيار "--cursor-file =" إلى "journalctl" لتحديد ملف لتحميل وحفظ موضع المؤشر؛
  • تمت إضافة تعريف لبرنامج Hypervisor ACRN ونظام WSL الفرعي (نظام Windows الفرعي لنظام Linux) إلى systemd-detect-virt للتفريع اللاحق باستخدام عامل التشغيل الشرطي "ConditionVirtualization"؛
  • أثناء تثبيت systemd (عند تنفيذ "ninja install")، يتم إنشاء روابط رمزية للملفات systemd-networkd.service وsystemd-networkd.socket و
    systemd-resolved.service، Remote-cryptsetup.target، Remote-fs.target،
    systemd-networkd-wait-online.service وsystemd-timesyncd.service. لإنشاء هذه الملفات، تحتاج الآن إلى تشغيل الأمر "systemctl preset-all".

مصدرopennet.ru

[أون]

بعد شهرين من التطوير المقدمة الافراج عن مدير النظام systemd 242. من بين الابتكارات، يمكننا ملاحظة دعم أنفاق L2TP، والقدرة على التحكم في سلوك تسجيل الدخول إلى النظام عند إعادة التشغيل من خلال متغيرات البيئة، ودعم أقسام التمهيد XBOOTLDR الموسعة للتثبيت / التمهيد، والقدرة على التمهيد باستخدام قسم جذر في التراكبات، بالإضافة إلى عدد كبير من الإعدادات الجديدة لأنواع مختلفة من الوحدات.

التغييرات الرئيسية:

  • يوفر systemd-networkd الدعم لأنفاق L2TP؛
  • يوفر sd-boot وbootctl الدعم لأقسام XBOOTLDR (محمل التمهيد الممتد) المصممة ليتم تثبيتها على /boot، بالإضافة إلى أقسام ESP المثبتة على /efi أو /boot/efi. يمكن الآن تشغيل النواة والإعدادات وصور initrd وEFI من قسمي ESP وXBOOTLDR. يتيح لك هذا التغيير استخدام أداة تحميل التشغيل sd-boot في سيناريوهات أكثر تحفظًا، عندما يكون محمل التشغيل نفسه موجودًا في ESP، ويتم وضع النوى المحملة وبيانات التعريف المرتبطة بها في قسم منفصل؛
  • تمت إضافة القدرة على التمهيد باستخدام خيار "systemd.volatile=overlay" الذي تم تمريره إلى النواة، والذي يسمح لك بوضع القسم الجذر في التراكبات وتنظيم العمل أعلى صورة للقراءة فقط من الدليل الجذر مع التغييرات المكتوبة على ملف دليل منفصل في tmpfs (يتم فقدان التغييرات في هذا التكوين بعد إعادة التشغيل). وقياسًا على ذلك، أضاف systemd-nspawn خيار "--volatile=overlay" لاستخدام وظائف مماثلة في الحاويات؛
  • أضاف systemd-nspawn خيار "--oci-bundle" للسماح باستخدام حزم وقت التشغيل لتوفير إطلاق معزول للحاويات التي تتوافق مع مواصفات مبادرة الحاوية المفتوحة (OCI). للاستخدام في سطر الأوامر ووحدات nspawn، يُقترح دعم الخيارات المتنوعة الموضحة في مواصفات OCI، على سبيل المثال، يمكن استخدام خيارات "--inaccessible" و"Inaccessible" لاستبعاد أجزاء من نظام الملفات، و" تمت إضافة خيارات --console لتكوين تدفقات الإخراج القياسية و"-pipe"؛
  • تمت إضافة القدرة على التحكم في سلوك تسجيل دخول النظام من خلال متغيرات البيئة: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP،
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU و
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. باستخدام هذه المتغيرات، يمكنك توصيل معالجات عملية إعادة التشغيل الخاصة بك (/run/systemd/reboot-to-firmware-setup، و/run/systemd/reboot-to-boot-loader-menu و
    /run/systemd/reboot-to-boot-loader-entry) أو تعطيلها تمامًا (إذا تم ضبط القيمة على false)؛

  • تمت إضافة الخيارات "-boot-load-menu =" و
    "—boot-loader-entry="، مما يسمح لك بتحديد عنصر قائمة تمهيد محدد أو وضع تمهيد بعد إعادة التشغيل؛

  • تمت إضافة أمر عزل Sandbox جديد "RestrictSUIDSGID="، والذي يستخدم seccomp لمنع إنشاء ملفات ذات علامات SUID/SGID؛
  • التأكد من تطبيق قيود "NoNewPrivileges" و"RestrictSUIDSGID" بشكل افتراضي في الخدمات مع وضع إنشاء معرف المستخدم الديناميكي (تمكين "DynamicUser")؛
  • تم تغيير الإعداد الافتراضي MACAddressPolicy=الإعداد المستمر في ملفات .link لتغطية المزيد من الأجهزة. لا تعرف واجهات جسور الشبكة والأنفاق (tun، Tap) والروابط المجمعة (bond) نفسها إلا من خلال اسم واجهة الشبكة، لذلك يُستخدم هذا الاسم الآن كأساس لربط عناوين MAC وIPv4. بالإضافة إلى ذلك، تمت إضافة الإعداد "MACAddressPolicy=random"، والذي يمكن استخدامه لربط عناوين MAC وIPv4 بالأجهزة بترتيب عشوائي؛
  • لم تعد ملفات الوحدة ".device" التي تم إنشاؤها عبر systemd-fstab-generator تتضمن وحدات ".mount" المقابلة كتبعيات في قسم "Wants=". إن توصيل جهاز ببساطة لن يؤدي إلى تشغيل وحدة للتركيب تلقائيًا، ولكن لا يزال من الممكن تشغيل هذه الوحدات لأسباب أخرى، مثل كجزء من local-fs.target أو كاعتماد على وحدات أخرى تعتمد على local-fs.target ;
  • تمت إضافة دعم للأقنعة ("*"، وما إلى ذلك) لأوامر "networkctl list/status/lldp" لتصفية مجموعات معينة من واجهات الشبكة حسب جزء من اسمها؛
  • يتم الآن تعيين متغير البيئة $PIDFILE باستخدام المسار المطلق الذي تم تكوينه في الخدمات عبر المعلمة "PIDFile=;".
  • تمت إضافة خوادم Cloudflare العامة (1.1.1.1) إلى عدد خوادم DNS الاحتياطية المستخدمة إذا لم يتم تعريف DNS الرئيسي بشكل صريح. لإعادة تعريف قائمة خوادم DNS الاحتياطية، يمكنك استخدام خيار "-Ddns-servers="؛
  • عند اكتشاف وجود وحدة تحكم جهاز USB، يتم تشغيل معالج usb-gadget.target الجديد تلقائيًا (عند تشغيل النظام على جهاز طرفي USB)؛
  • بالنسبة لملفات الوحدة، تم تنفيذ الإعداد "CPUQuotaPeriodSec="، الذي يحدد الفترة الزمنية المتعلقة بقياس الحصة الزمنية لوحدة المعالجة المركزية، والتي تم ضبطها من خلال الإعداد "CPUQuota="؛
  • بالنسبة لملفات الوحدة، تم تنفيذ الإعداد "ProtectHostname="، والذي يحظر على الخدمات تغيير المعلومات حول اسم المضيف، حتى لو كانت لديها الأذونات المناسبة؛
  • بالنسبة لملفات الوحدة، تم تنفيذ الإعداد "NetworkNamespacePath ="، والذي يسمح لك بربط مساحة الاسم بالخدمات أو وحدات المقبس عن طريق تحديد المسار إلى ملف مساحة الاسم في الملف pseudo-FS /proc؛
  • تمت إضافة القدرة على تعطيل استبدال متغيرات البيئة للعمليات التي تم إطلاقها باستخدام إعداد "ExecStart=" عن طريق إضافة حرف ":" قبل أمر البدء؛
  • بالنسبة للمؤقتات (وحدات الموقت) علامات جديدة "OnClockChange =" و
    "OnTimezoneChange ="، والذي يمكنك من خلاله التحكم في استدعاء الوحدة عندما يتغير وقت النظام أو المنطقة الزمنية؛

  • تمت إضافة إعدادات جديدة "ConditionMemory=" و"ConditionCPUs="، والتي تحدد شروط استدعاء الوحدة اعتمادًا على حجم الذاكرة وعدد مراكز وحدة المعالجة المركزية (على سبيل المثال، لا يمكن تشغيل خدمة كثيفة الموارد إلا إذا كان المقدار المطلوب من ذاكرة الوصول العشوائي متاحة)؛
  • تمت إضافة وحدة time-set.target جديدة تقبل وقت النظام المحدد محليًا، دون استخدام التسوية مع خوادم الوقت الخارجية باستخدام وحدة time-sync.target. يمكن استخدام الوحدة الجديدة من خلال الخدمات التي تحتاج إلى دقة الساعات المحلية غير المتزامنة؛
  • تمت إضافة خيار "--show-transaction" إلى "systemctl start" وأوامر مماثلة، عند تحديدها، يتم عرض ملخص لجميع الوظائف المضافة إلى قائمة الانتظار بسبب العملية المطلوبة؛
  • يطبق systemd-networkd تعريف الحالة "الاستعبادية" الجديدة، المستخدمة بدلاً من "المنخفضة" أو "الناقل" لواجهات الشبكة التي تعد جزءًا من الروابط المجمعة أو جسور الشبكة. بالنسبة للواجهات الأساسية، في حالة حدوث مشكلات في أحد الوصلات المركبة، تتم إضافة حالة "الحامل المتدهور"؛
  • تمت إضافة خيار "IgnoreCarrierLoss=" إلى وحدات .network لحفظ إعدادات الشبكة في حالة فقدان الاتصال؛
  • من خلال الإعداد "RequiredForOnline=" في وحدات .network، يمكنك الآن تعيين الحد الأدنى المقبول لحالة الارتباط المطلوبة لنقل واجهة الشبكة إلى "online" وتشغيل معالج systemd-networkd-wait-online؛
  • تمت إضافة خيار "--any" إلى systemd-networkd-wait-online لانتظار جاهزية أي من واجهات الشبكة المحددة بدلاً من الكل، بالإضافة إلى خيار "--operational-state=" لتحديد حالة الرابط الذي يشير إلى الاستعداد؛
  • تمت إضافة إعدادات "UseAutonomousPrefix=" و"UseOnLinkPrefix=" إلى وحدات .network، والتي يمكن استخدامها لتجاهل البادئات عند الاستلام
    إعلان من جهاز توجيه IPv6 (RA، إعلان جهاز التوجيه)؛

  • في وحدات الشبكة.، تمت إضافة إعدادات "MulticastFlood="، و"NeighborSuppression=" و"Learning=" لتغيير معلمات التشغيل لجسر الشبكة، بالإضافة إلى إعداد "TripleSampling=" لتغيير وضع TRIPLE-SAMPLING من الواجهات الافتراضية CAN؛
  • تمت إضافة إعدادات "PrivateKeyFile=" و"PresharedKeyFile=" إلى وحدات ‎.netdev، والتي يمكنك من خلالها تحديد المفاتيح الخاصة والمشتركة (PSK) لواجهات WireGuard VPN؛
  • تمت إضافة خيارات Same-cpu-crypt و Submit-from-crypt-cpus إلى /etc/crypttab، والتي تتحكم في سلوك المجدول عند ترحيل العمل المتعلق بالتشفير بين مراكز وحدة المعالجة المركزية؛
  • يوفر systemd-tmpfiles معالجة ملفات القفل قبل تنفيذ العمليات في الدلائل ذات الملفات المؤقتة، مما يسمح لك بتعطيل العمل على تنظيف الملفات القديمة لمدة إجراءات معينة (على سبيل المثال، عند تفريغ أرشيف tar في /tmp، قد تكون الملفات القديمة جدًا مفتوح لا يمكن حذفه قبل نهاية الإجراء معهم)؛
  • يوفر الأمر "systemd-analyze cat-config" القدرة على تحليل التكوين المقسم إلى عدة ملفات، على سبيل المثال، الإعدادات المسبقة للمستخدم والنظام، ومحتويات tmpfiles.d وsysusers.d، وقواعد udev، وما إلى ذلك.
  • تمت إضافة خيار "--cursor-file =" إلى "journalctl" لتحديد ملف لتحميل وحفظ موضع المؤشر؛
  • تمت إضافة تعريف لبرنامج Hypervisor ACRN ونظام WSL الفرعي (نظام Windows الفرعي لنظام Linux) إلى systemd-detect-virt للتفريع اللاحق باستخدام عامل التشغيل الشرطي "ConditionVirtualization"؛
  • أثناء تثبيت systemd (عند تنفيذ "ninja install")، يتم إنشاء روابط رمزية للملفات systemd-networkd.service وsystemd-networkd.socket و
    systemd-resolved.service، Remote-cryptsetup.target، Remote-fs.target،
    systemd-networkd-wait-online.service وsystemd-timesyncd.service. لإنشاء هذه الملفات، تحتاج الآن إلى تشغيل الأمر "systemctl preset-all".

المصدر: opennet.ru

[:]

إضافة تعليق