Setelah enam bulan pengembangan, rilis manajer sistem systemd 257 disajikan. Perubahan utama: utilitas baru systemd-sbsign dan systemd-keyutil, dukungan untuk MPTCP ketika diaktifkan melalui soket, dukungan awal untuk membangun dengan perpustakaan Musl C, the utilitas updatectl untuk mengelola instalasi pembaruan melalui systemd-sysupdate, kemampuan untuk meluncurkan layanan di namespace PID terpisah, perlindungan terhadap penghapusan file yang tidak disengaja saat menggunakan "systemd-tmpfiles —purge".
Perubahan dalam rilis baru meliputi:
- Sebuah utilitas baru, systemd-sbsign, telah ditambahkan untuk menandatangani file yang dapat dieksekusi secara digital dalam format PE (Portable Executable) yang ditujukan untuk digunakan saat booting dalam mode EFI Secure Boot. Mesin dan penyedia yang disediakan oleh pustaka OpenSSL dapat digunakan untuk pembuatan tanda tangan. systemd-sbsign dapat digunakan sebagai alternatif untuk aplikasi sbsigntool dan pesign dalam utilitas ukify saat menghasilkan citra kernel universal (UKI), yang menggabungkan boot loader UEFI (UEFI boot stub) dan citra kernel dalam satu file. Linux dan lingkungan sistem initrd dimuat ke dalam memori.
- Utilitas baru, systemd-keyutil, telah ditambahkan yang mengimplementasikan berbagai operasi pada kunci pribadi dan sertifikat X.509. Misalnya, systemd-keyutil dapat digunakan untuk menguji kemampuan memuat kunci pribadi dan sertifikat, dan mengekstrak kunci publik darinya dalam format PEM.
- Pada unit ".socket" yang digunakan untuk memastikan pengoperasian mekanisme aktivasi soket (memulai proses saat mencoba membangun koneksi jaringan), dukungan diimplementasikan untuk MPTCP (Multipath TCP), sebuah ekstensi dari protokol TCP untuk mengatur pengoperasian koneksi TCP dengan pengiriman paket secara simultan melalui beberapa rute melalui antarmuka jaringan yang berbeda yang terikat pada soket yang berbeda. Alamat IP.
- Termasuk perubahan yang diperlukan untuk membangun menggunakan perpustakaan Musl C standar.
- Berbagai komponen systemd yang menampilkan indikator kemajuan (misalnya, systemd-repart, systemd-sysupdate/updatectl, dan importctl) kini mendukung penggunaan urutan ANSI untuk menganimasikan tampilan kemajuan. Urutan tersebut saat ini hanya didukung di Windows Terminal (diharapkan seiring waktu fitur serupa akan ditransfer ke emulator terminal untuk Linux).
- Kemampuan komponen systemd-sysupdate telah diperluas, digunakan untuk secara otomatis mendeteksi, mengunduh dan menginstal pembaruan menggunakan mekanisme atom untuk mengganti partisi, file atau direktori (dua partisi/file/direktori independen digunakan, salah satunya berisi pekerjaan saat ini sumber daya, dan yang lainnya menginstal pembaruan berikutnya, setelah itu bagian/file/direktori ditukar). Dalam praktiknya, systemd-sysupdate sudah digunakan di OS GNOME.
Selain proses systemd-sysupdate, layanan dengan nama yang sama telah ditambahkan yang memungkinkan D-Bus digunakan untuk mengelola pembaruan sistem oleh pengguna yang tidak memiliki hak istimewa. Untuk mengelola layanan, utilitas updatectl baru juga disertakan. Menambahkan tanda “--offline” ke systemd-sysupdate untuk menonaktifkan pengunduhan metadata melalui jaringan dan hanya menggunakan versi yang sudah diunduh ke sistem lokal. Menambahkan dukungan untuk keluaran dalam format JSON untuk semua perintah.
- Properti baru "PrivatePIDs" telah diterapkan untuk layanan, yang dengannya Anda dapat mengatur peluncuran proses dengan PID 1 (proses init) dalam ruang pengidentifikasi proses terpisah (namespace PID). Di lingkungan yang dibuat untuk proses yang diluncurkan, hanya proses dari namespace yang dibuat untuk proses tersebut yang akan terlihat.
- Menambahkan dukungan untuk pencocokan peka huruf besar-kecil pada aturan udev (misalnya 'ATTR{foo}==i»abcd»'). Dengan menggunakan udev, dimungkinkan untuk memberikan akses (“uaccess”) kepada pengguna lokal yang tidak memiliki hak istimewa ke perangkat /dev/udmabuf, yang diperlukan untuk bekerja dengan kamera IPMI melalui libcamera. udev memberikan pengenalan berbagai dompet kripto perangkat keras dengan antarmuka USB dan mengatur properti ID_HARDWARE_WALLET untuk dompet tersebut, yang memungkinkan Anda menerapkan mode "uaccess" pada dompet tersebut untuk diakses oleh pengguna yang tidak memiliki hak istimewa.
- Bidang baru RELEASE_TYPE, EXPERIMENT dan EXPERIMENT_URL telah ditambahkan ke file /etc/os-release. "RELEASE_TYPE" dapat mengambil nilai "eksperimental", "pengembangan", "stabil" dan "lts" untuk memisahkan versi stabil dari pengembangan dan versi eksperimental. Parameter EXPERIMENT dan EXPERIMENT_URL dimaksudkan untuk menjelaskan inti dari pembuatan eksperimental.
- Utilitas run0, yang dikembangkan sebagai pengganti program sudo, telah menambahkan opsi “--shell-prompt-prefix”, yang menentukan string awalan untuk perintah shell prompt. Secara default, emoji “🦸” ditampilkan sebagai awalan untuk menyorot sesi yang ditinggikan secara visual.
- Di systemd-tmpfiles, untuk menghindari penghapusan file yang salah secara tidak sengaja, opsi "--purge" sekarang hanya berlaku untuk pengaturan di tmpfiles.d/ yang memiliki tanda "$" yang disetel secara eksplisit. Operasi "--purge" sekarang juga memerlukan penentuan setidaknya satu file dari direktori tmpfiles.d/. Untuk string dengan tipe 'L', tanda '?' telah ditambahkan, ketika ditentukan, tautan simbolis akan dibuat hanya jika file target ada.
- Di manajer layanan dan utilitas terkait, kode pelacakan proses terus dikonversi untuk menggunakan PIDFD, bukan PID. PIDFD dikaitkan dengan proses tertentu dan tidak berubah, sedangkan PID dapat dikaitkan dengan proses lain setelah proses saat ini yang terkait dengan PID tersebut berakhir.
- Untuk layanan, sekarang dimungkinkan untuk menentukan nilai “debug” dalam parameter “RestartMode”, di mana layanan yang gagal akan dimulai ulang dengan mode debug diaktifkan (variabel lingkungan DEBUG_INVOCATION=1 diatur), dan nilai LogLevelMax akan menjadi untuk sementara dinaikkan ke tingkat debug.
- Pengendali PID 1 memiliki kemampuan untuk memuat aturan untuk modul LSM IPE (Penegakan Kebijakan Integritas), yang menentukan kebijakan integritas untuk keseluruhan sistem (operasi mana yang diperbolehkan dan bagaimana keaslian komponen harus diverifikasi).
- Opsi “DeferReactivation” telah ditambahkan ke file unit “.timer”, yang memungkinkan Anda melewati aktivasi pengatur waktu berikutnya jika layanan belum menyelesaikan eksekusinya sejak aktivasi terakhir.
- Dalam parameter file unit PrivateUsers, sekarang dimungkinkan untuk menentukan nilai “identitas” untuk mengaktifkan pemetaan ID pengguna saat membuat namespace pengguna.
- Menambahkan dukungan untuk nilai “terputus” ke parameter file unit PrivateTmp, yang akan menggunakan instance tmpfs terpisah untuk direktori /tmp/ dan /var/tmp/.
- Dukungan untuk mode “pribadi” dan “ketat” baru telah ditambahkan ke parameter file unit ProtectControlGroups, ketika disetel, namespace cgroup baru dibuat untuk layanan dan cgroupfs dipasang. Ketika opsi "ketat" disetel, cgroupfs dipasang dalam mode read-only.
- Parameter StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory, dan ConfigurationDirectory menyediakan kemampuan untuk menggunakan tanda ':ro' untuk membatasi akses ke direktori terkait ke mode hanya-baca.
- Menambahkan dukungan untuk nilai “firmware” ke parameter baris perintah kernel “systemd.machine_id”, di mana pengidentifikasi sistem (ID mesin) akan dihitung berdasarkan UUID dari SMBIOS/DeviceTree.
- Menambahkan dukungan untuk panggilan sistem mseal(), listmount(), dan statmount() yang diperkenalkan dalam rilis kernel terbaru. Linux.
- Utilitas resolvectl, timedatectl dan systemd-inhibit sekarang mendukung otorisasi interaktif menggunakan Polkit.
- Menambahkan kemampuan untuk menggunakan tanda “--now” dalam perintah “aktifkan kembali” ke utilitas systemctl.
- Menambahkan opsi "--json" ke utilitas systemd-mount untuk keluaran dalam format JSON (misalnya, bila ditentukan bersama dengan "--list-devices", daftar perangkat akan dikeluarkan dalam format JSON).
- Menambahkan opsi "-l" dan "--full" ke utilitas "localectl" untuk menonaktifkan pemangkasan garis panjang selama keluaran.
- Opsi HibernateOnACPower telah ditambahkan ke sleep.conf, yang memungkinkan Anda menunda peralihan ke mode tidur hingga perangkat terputus dari sumber listrik stasioner.
- Di systemd-sysusers, dukungan untuk pengubah "!" telah ditambahkan ke baris "u", yang dengannya Anda dapat membuat akun pengguna yang sepenuhnya terkunci (sebelumnya, pengaturan kata sandi yang salah digunakan untuk memblokir pengguna, yang, misalnya, tidak menyebabkan pemblokiran selama otentikasi kunci di SSH).
- Systemd-coredump menambahkan opsi "EnterNamespace" yang memungkinkan akses ke ruang titik pemasangan dari setiap proses yang mogok untuk mendapatkan simbol debugnya. Dalam praktiknya, opsi ini dapat berguna untuk mengatur penelusuran balik file inti dari aplikasi yang berjalan dalam wadah terisolasi.
- systemd-logind menyertakan pemrosesan kombinasi Ctrl-Alt-Shift-Esc untuk mengirim sinyal org.freedesktop.login1.SecureAttentionKey ke komponen lingkungan pengguna dengan permintaan untuk menampilkan dialog login yang aman. Menerapkan pengaturan “DesignatedMaintenanceTime” untuk secara otomatis menjadwalkan pekerjaan agar selesai pada waktu tertentu. Dengan analogi dengan dukungan untuk perangkat DRM dan evdev, dukungan telah ditambahkan untuk mengonfigurasi akses bagi pengguna yang tidak memiliki hak istimewa untuk menyembunyikan perangkat (pengontrol game dan joystick).
- systemd-machined sekarang mendukung login klien tanpa hak istimewa. mesin virtual dan kontainer. Akses ke fungsionalitas systemd-machined disediakan melalui API Varlink, selain D-Bus.
- Bagian baru “[IPv6AddressLabel]” telah ditambahkan ke file konfigurasi networkd.conf untuk mengonfigurasi label dan awalan untuk alamat IPv6
- Menambahkan opsi "--stdin" ke perintah 'networkctl edit' untuk mendapatkan konten file dari aliran standar. Menambahkan dukungan untuk mengedit dan menampilkan file .netdev dengan menentukan antarmuka jaringan ke perintah 'networkctl edit' dan 'networkctl cat'. Menambahkan opsi "--no-ask-password" untuk menonaktifkan otorisasi interaktif.
- Menambahkan opsi "--certificate-source" ke utilitas ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart, dan systemd-sbsign untuk memuat sertifikat X.509 melalui penyedia OpenSSL alih-alih memuat langsung dari a mengajukan.
- systemd-boot menambahkan kemampuan untuk menggunakan tombol volume untuk bergerak ke atas dan ke bawah melalui menu boot, yang dapat berguna pada perangkat seperti ponsel cerdas. Dukungan untuk menginstal database UEFI Secure Boot dalam format ESL(db/dbx/…) untuk systemd-boot telah ditambahkan ke utilitas bootctl.
- Menambahkan opsi "--list-invocation" ke journalctl untuk menampilkan daftar panggilan unit dan opsi "--invocation" ("-I") untuk menampilkan log yang terkait hanya dengan panggilan tertentu.
- systemd-nspawn menambahkan dukungan untuk penggunaan FUSE (Sistem File di Userspace) tanpa hak istimewa dalam container. Saat menggunakan opsi “--bind-user”, kunci SSH pengguna yang diperlukan untuk akses melalui SSH diteruskan ke container.
- libsystemd telah menambahkan antarmuka pemrograman baru "sd-json" yang menggunakan format JSON, serta antarmuka "sd-varlink" yang menggunakan IPC Varlink.
- Versi kernel dasar yang direkomendasikan telah ditingkatkan ke rilis 5.4, yang dibentuk pada tahun 2019. Tahun depan mereka berencana untuk berhenti mendukung kernel lama dan menandai rilis 5.4 sebagai versi dasar minimum yang didukung.
- Dukungan untuk cgroups v1 sudah tidak digunakan lagi dan dinonaktifkan secara default (untuk mengaktifkannya, Anda harus menentukan SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 pada baris perintah kernel selain mengaktifkannya di pengaturan systemd). Rilis berikutnya dari systemd 258 berencana untuk menghapus sepenuhnya kode terkait cgroups v1. Systemd versi 258 juga dijadwalkan untuk menghapus dukungan untuk skrip layanan System V.
Sumber: opennet.ru
