پس از شش ماه توسعه، انتشار سیستم مدیر systemd 257 ارائه شد: تغییرات کلیدی: ابزارهای جدید systemd-sbsign و systemd-keyutil، پشتیبانی از MPTCP هنگام فعال شدن از طریق یک سوکت، پشتیبانی اولیه برای ساخت با کتابخانه Musl C، ابزار updatectl برای مدیریت نصب بهروزرسانیها از طریق systemd-sysupdate، امکان راهاندازی خدمات در فضاهای نام جداگانه PID، محافظت در برابر حذف تصادفی فایلها هنگام استفاده از «systemd-tmpfiles —purge».
از جمله تغییرات نسخه جدید:
- Добавлена новая утилита systemd-sbsign для заверения цифровой подписью исполняемых файлов в формате PE (Portable Executable), предназначенных для использования при загрузке в режиме EFI Secure Boot. Для формирования подписи могут использоваться движки и провайдеры, предоставляемые библиотекой OpenSSL. Systemd-sbsign может применяться в качестве альтернативы приложениям sbsigntool и pesign в утилите ukify при формировании универсальных образов ядра UKI (Unified Kernel Image), объединяющих в одном файле загрузчик для UEFI (UEFI boot stub), образ ядра Linux و محیط سیستم initrd که در حافظه بارگذاری شده است.
- یک ابزار جدید به نام systemd-keyutil اضافه شده است که عملیات مختلفی را روی کلیدهای خصوصی و گواهینامه های X.509 پیاده سازی می کند. به عنوان مثال، systemd-keyutil را می توان برای آزمایش توانایی بارگیری کلیدهای خصوصی و گواهینامه ها و استخراج کلیدهای عمومی از آنها در قالب PEM استفاده کرد.
- در واحدهای ".socket" که برای اطمینان از عملکرد مکانیسم فعالسازی سوکت (شروع فرآیندها هنگام تلاش برای ایجاد اتصال شبکه) استفاده میشوند، پشتیبانی از MPTCP (Multipath TCP) پیادهسازی شده است، که افزونهای از پروتکل TCP برای سازماندهی عملکرد اتصال TCP با تحویل بستهها به طور همزمان در چندین مسیر از طریق رابطهای شبکه مختلف متصل به رابطهای مختلف است. آدرسهای IP.
- شامل تغییرات لازم برای ساخت با استفاده از کتابخانه استاندارد Musl C است.
- В различные компоненты systemd, выводящие индикаторы прогресса выполнения операций (например, systemd-repart, systemd-sysupdate/updatectl и importctl), добавлена возможность использования ANSI-последовательностей для анимирования отображения прогресса. Подобные последовательности пока поддерживаются только в Windows Terminal (предполагается, что со временем подобная возможность будет перенесена и в эмуляторы терминалов для Linux).
- قابلیت های کامپوننت systemd-sysupdate گسترش یافته است، برای شناسایی، دانلود و نصب خودکار به روز رسانی ها با استفاده از مکانیزم اتمی برای جایگزینی پارتیشن ها، فایل ها یا دایرکتوری ها استفاده می شود (دو پارتیشن/فایل/دایرکتوری مستقل استفاده می شود که یکی از آنها شامل کار فعلی است. منبع، و دیگری بهروزرسانی بعدی را نصب میکند، پس از آن بخشها/فایلها/دایرکتوریها تعویض میشوند). در عمل، systemd-sysupdate در حال حاضر در سیستم عامل GNOME استفاده شده است.
علاوه بر فرآیند systemd-sysupdate، سرویسی به همین نام اضافه شده است که به D-Bus اجازه می دهد تا برای مدیریت به روز رسانی های سیستم توسط یک کاربر غیرمجاز استفاده شود. برای مدیریت سرویس، ابزار جدید updatectl نیز گنجانده شده است. پرچم "--آفلاین" به systemd-sysupdate اضافه شد تا دانلود ابرداده از طریق شبکه غیرفعال شود و فقط از نسخه هایی استفاده شود که قبلاً در سیستم محلی دانلود شده اند. پشتیبانی از خروجی در فرمت JSON برای همه دستورات اضافه شده است.
- یک ویژگی جدید "PrivatePIDs" برای خدمات پیاده سازی شده است که با آن می توانید راه اندازی فرآیندها را با PID 1 (فرآیند اولیه) در یک فضای شناسه فرآیند جداگانه (فضای نام PID) سازماندهی کنید. در محیطی که برای فرآیند راه اندازی شده ایجاد شده است، فقط فرآیندهایی از فضای نام ایجاد شده برای آن قابل مشاهده خواهند بود.
- به قوانین udev (به عنوان مثال 'ATTR{foo}==i»abcd'') برای مطابقتهای حساس به حروف کوچک و بزرگ پشتیبانی اضافه شد. با استفاده از udev، امکان دسترسی ("uaccess") به دستگاه /dev/udmabuf که برای کار با دوربین های IPMI از طریق libcamera لازم است، برای کاربران محلی غیرمجاز فراهم می شود. udev شناسایی کیف پولهای رمزنگاری مختلف سختافزاری با رابط USB و تنظیم ویژگی ID_HARDWARE_WALLET را برای آنها فراهم میکند، که به شما امکان میدهد حالت "uaccess" را برای دسترسی کاربران غیرمجاز به آنها اعمال کنید.
- فیلدهای جدید RELEASE_TYPE، EXPERIMENT و EXPERIMENT_URL به فایل /etc/os-release اضافه شده است. "RELEASE_TYPE" می تواند مقادیر "experimental"، "development"، "stable" و "lts" را برای جداسازی نسخه های پایدار از توسعه و ساخت های آزمایشی بگیرد. پارامترهای EXPERIMENT و EXPERIMENT_URL برای توضیح ماهیت ساخت آزمایشی در نظر گرفته شده است.
- ابزار run0 که به عنوان جایگزینی برای برنامه sudo توسعه یافته است، گزینه "--shell-prompt-prefix" را اضافه کرده است که رشته پیشوند را برای دستور shell prompt مشخص می کند. بهطور پیشفرض، شکلک «🦸» بهعنوان پیشوندی برای برجستهسازی بصری یک جلسه بالا نمایش داده میشود.
- در systemd-tmpfiles، برای جلوگیری از حذف تصادفی فایلهای اشتباه، گزینه «--purge» اکنون فقط برای تنظیمات موجود در tmpfiles.d/ که پرچم «$» به صراحت تنظیم شده است اعمال میشود. عملیات "--purge" نیز اکنون نیازمند تعیین حداقل یک فایل از دایرکتوری tmpfiles.d/ است. برای رشته هایی با نوع "L"، پرچم "؟" اضافه شده است، در صورت مشخص شدن، یک پیوند نمادین تنها در صورت وجود فایل هدف ایجاد می شود.
- در مدیر سرویس و ابزارهای مرتبط، کد رهگیری فرآیند به استفاده از PIDFD به جای PID تبدیل می شود. یک PIDFD با یک فرآیند خاص مرتبط است و تغییر نمی کند، در حالی که یک PID می تواند پس از پایان فرآیند فعلی مرتبط با آن PID با فرآیند دیگری مرتبط شود.
- برای سرویسها، اکنون میتوان مقدار «debug» را در پارامتر «RestartMode» تعیین کرد، که در آن سرویس ناموفق با فعال کردن حالت اشکالزدایی مجدد راهاندازی میشود (متغیر محیط DEBUG_INVOCATION=1 تنظیم شده است)، و مقدار LogLevelMax خواهد بود. به طور موقت به سطح اشکال زدایی ارتقا یافته است.
- کنترل کننده PID 1 توانایی بارگذاری قوانین برای ماژول IPE (اجرای سیاست یکپارچگی) LSM را دارد که خط مشی یکپارچگی را برای کل سیستم تعریف می کند (کدام عملیات مجاز است و چگونه صحت اجزا باید تأیید شود).
- گزینه "DeferReactivation" به فایل های واحد ".timer" اضافه شده است که به شما امکان می دهد در صورتی که سرویس از آخرین فعال سازی هنوز اجرای خود را کامل نکرده است، از فعال سازی بعدی تایمر صرف نظر کنید.
- در پارامتر فایل واحد PrivateUsers، اکنون می توان مقدار "شناسه" را برای فعال کردن نقشه برداری شناسه های کاربر هنگام ایجاد فضای نام کاربری مشخص کرد.
- به پارامتر فایل واحد PrivateTmp که از نمونههای tmpfs جداگانه برای دایرکتوریهای /tmp/ و /var/tmp/ استفاده میکند، پشتیبانی از مقدار «قطع شده» اضافه شده است.
- پشتیبانی از حالتهای «خصوصی» و «سخت» جدید به پارامتر فایل واحد ProtectControlGroups اضافه شده است، پس از تنظیم، فضای نام cgroup جدیدی برای سرویس ایجاد میشود و cgroupfs نصب میشود. هنگامی که گزینه "strict" تنظیم می شود، cgroupfs در حالت فقط خواندنی نصب می شود.
- پارامترهای StateDirectory، RuntimeDirectory، CacheDirectory، LogsDirectory و ConfigurationDirectory امکان استفاده از پرچم ':ro' را برای محدود کردن دسترسی به دایرکتوری های مربوطه به حالت فقط خواندنی فراهم می کنند.
- پشتیبانی از مقدار «سیستمافزار» به پارامتر خط فرمان «systemd.machine_id» هسته اضافه شد، که در آن شناسه سیستم (شناسه ماشین) بر اساس UUID از SMBIOS/DeviceTree محاسبه میشود.
- Добавлена поддержка системных вызовов mseal(), listmount() и statmount(), появившихся в недавних выпусках ядра Linux.
- ابزارهای solvectl، timedatectl و systemd-inhibit اکنون از مجوز تعاملی با استفاده از Polkit پشتیبانی می کنند.
- قابلیت استفاده از پرچم "--now" در دستور "reenable" را به ابزار systemctl اضافه کرد.
- گزینه "--json" به ابزار systemd-mount برای خروجی با فرمت JSON اضافه شد (به عنوان مثال، هنگامی که همراه با "--list-devices" مشخص شود، لیستی از دستگاه ها با فرمت JSON خروجی می شود).
- گزینه های "-l" و "--full" را به ابزار "localectl" اضافه کرد تا برش خطوط طولانی را در حین خروجی غیرفعال کند.
- گزینه HibernateOnACPower به sleep.conf اضافه شده است که به شما امکان می دهد تغییر حالت خواب را تا زمانی که دستگاه از منبع برق ثابت جدا نشود به تأخیر بیاندازید.
- در systemd-sysusers، به خطوط «u» پشتیبانی از «!» اضافه شده است که با آن میتوانید حسابهای کاربری کاملاً قفل شده ایجاد کنید (قبلاً از تنظیم یک رمز عبور نادرست برای مسدود کردن کاربر استفاده میشد که به عنوان مثال، در حین احراز هویت کلید در SSH منجر به مسدود شدن نشد.
- Systemd-coredump یک گزینه "EnterNamespace" اضافه می کند که امکان دسترسی به فضای نقطه اتصال هر فرآیند خراب را برای به دست آوردن نمادهای اشکال زدایی آنها فراهم می کند. در عمل، این گزینه می تواند برای سازماندهی بک ردیاب فایل های اصلی از برنامه های در حال اجرا در کانتینرهای ایزوله مفید باشد.
- systemd-logind شامل پردازش ترکیب Ctrl-Alt-Shift-Esc برای ارسال سیگنال org.freedesktop.login1.SecureAttentionKey به اجزای محیط کاربر با درخواست نمایش یک گفتگوی ورود امن است. تنظیم «DesignatedMaintenanceTime» را برای برنامهریزی خودکار کار برای تکمیل در یک زمان مشخص اجرا کرد. به قیاس با پشتیبانی از دستگاه های DRM و evdev، پشتیبانی برای پیکربندی دسترسی کاربران غیرمجاز به دستگاه های hidraw (کنترل کننده های بازی و جوی استیک) اضافه شده است.
- systemd-machined اکنون از ورود کلاینتهای غیرمجاز پشتیبانی میکند. ماشینهای مجازی و کانتینرها. دسترسی به قابلیتهای ماشینکاریشده توسط systemd علاوه بر D-Bus از طریق API مربوط به Varlink نیز فراهم میشود.
- یک بخش جدید "[IPv6AddressLabel]" به فایل پیکربندی networkd.conf اضافه شده است تا برچسب ها و پیشوندهای آدرس های IPv6 را پیکربندی کند.
- گزینه "--stdin" به دستور "networkctl edit" اضافه شد تا محتویات فایل را از جریان استاندارد دریافت کنید. با تعیین یک رابط شبکه به دستورات «networkctl edit» و «networkctl cat»، پشتیبانی از ویرایش و نمایش فایلهای netdev. برای غیرفعال کردن مجوز تعاملی گزینه "--no-ask-password" اضافه شد.
- یک گزینه "--certificate-source" را به ابزارهای ukify، bootctl، systemd-keyutil، systemd-measure، systemd-repart و systemd-sbsign اضافه کرد تا به جای بارگیری مستقیم از یک گواهینامه X.509، از طریق ارائه دهنده OpenSSL بارگیری شود. فایل
- systemd-boot امکان استفاده از دکمههای میزان صدا را برای بالا و پایین رفتن از طریق منوی بوت اضافه میکند که میتواند در دستگاههایی مانند گوشیهای هوشمند مفید باشد. پشتیبانی از نصب پایگاه داده UEFI Secure Boot با فرمت ESL(db/dbx/…) برای systemd-boot به ابزار bootctl اضافه شده است.
- گزینه "--list-invocation" به journalctl اضافه شد تا لیستی از تماس های واحد را نشان دهد و گزینه "--invocation" ("-I") برای نشان دادن گزارش های مربوط به یک تماس خاص.
- systemd-nspawn برای استفاده غیرمجاز از FUSE (فایل سیستم در فضای کاربری) در کانتینرها پشتیبانی میکند. هنگام استفاده از گزینه "-bind-user"، کلیدهای SSH کاربر مورد نیاز برای دسترسی از طریق SSH به کانتینر ارسال می شود.
- libsystemd یک رابط برنامه نویسی جدید "sd-json" اضافه کرده است که از فرمت JSON استفاده می کند و همچنین یک رابط "sd-varlink" که از IPC Varlink استفاده می کند.
- نسخه هسته پایه توصیه شده به نسخه 5.4 ارتقا یافته است که در سال 2019 شکل گرفت. در سال آینده آنها قصد دارند از هسته های قدیمی تر پشتیبانی نکنند و نسخه 5.4 را به عنوان حداقل نسخه پایه پشتیبانی شده علامت گذاری کنند.
- پشتیبانی از cgroups v1 منسوخ شده و به طور پیش فرض غیرفعال شده است (برای فعال کردن آن، علاوه بر فعال کردن آن در تنظیمات systemd، باید SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 را در خط فرمان هسته مشخص کنید). نسخه بعدی systemd 258 قصد دارد به طور کامل کدهای مربوط به cgroups v1 را حذف کند. نسخه 258 Systemd همچنین قرار است پشتیبانی از اسکریپت های سرویس System V را حذف کند.
منبع: opennet.ru
