systemd 259: Dukungan Musl, pemberdayaan run0, dan selamat tinggal System V

Poin kunci:
  • Dukungan parsial untuk Musl libc (memerlukan konfigurasi manual di Meson).
  • run0 --empower memungkinkan tindakan istimewa tanpa mengubah UID pengguna.
  • Konfirmasi penghentian dukungan untuk skrip System V dan peningkatan persyaratan (Kernel 5.10+).
  • libsystemd sekarang memuat pustaka eksternal menggunakan dlopen() untuk mengurangi ketergantungan.
  • Penyimpanan jurnal sekarang bersifat 'persisten' secara default.

systemd

Setelah pengembangan selama lebih dari tiga bulan, peluncuran versi baru dari sistem 259. Pembaruan ini memperkenalkan perubahan pada arsitektur sistem, menyoroti keterbukaan terhadap pustaka standar alternatif, manajemen hak akses yang lebih ketat, dan persyaratan teknis yang lebih ketat untuk versi mendatang.

Salah satu gerakan yang paling banyak dibicarakan dalam siklus ini adalah transisi menuju modularitas yang lebih besar dan penghapusan ketergantungan lama, membuka jalan bagi ekosistem Linux yang jelas-jelas menjauh dari standar dekade sebelumnya.

Fitur baru utama systemd 259

Versi systemd 259 yang baru menonjol karena... Versi pertama yang menambahkan kompatibilitas parsial dengan Musl, pustaka standar C yang populer di distribusi ringan dan lingkungan tertanam. Integrasi ini Hal ini diatur melalui opsi libc dalam sistem pembangunan Meson. Namun, karena Musl tidak mengimplementasikan fungsionalitas NSS (Name Service Switch), beberapa komponen systemd tetap dinonaktifkan dalam konfigurasi ini.

Di antara aketidakhadiran yang mencolok saat menyusun dengan Musl mereka nss-systemd, nss-resolve, systemd-homed, systemd-userdbd dan parameter DynamicUserSelain itu, tidak mungkin menjalankan systemd-nspawn tanpa hak akses di bawah pustaka ini. Para pengembang telah memperingatkan bahwa mempertahankan dukungan ini di versi mendatang akan bergantung pada permintaan komunitas dan stabilitas lapisan kompatibilitas tambahan yang dikembangkan.

Fitur baru lainnya pada versi terbaru ini adalah... dalam utilitas run0, dirancang sebagai alternatif modern dan aman untuk sudo, yang telah menerima Opsi baru – memberdayakan. Fungsi ini Ini memungkinkan Anda untuk masuk dengan hak akses yang lebih tinggi. tanpa perlu mengubah pengenal pengguna (UID) menjadi root.

Selain itu, alih-alih mendelegasikan kendali penuh Melalui pengalihan pengguna, –empower menggunakan indikator kemampuan kernel, seperti CAP_SYS_ADMIN, untuk memberikan izin yang benar-benar diperlukan untuk melakukan panggilan sistem istimewa. Selain itu, proses yang dihasilkan diintegrasikan ke dalam grup khusus yang memberi mereka akses ke tindakan Polkit, sehingga mempertahankan pemisahan hak akses yang lebih kuat daripada model sudo tradisional.

Akhir sebuah era: Selamat tinggal System V dan persyaratan baru.

systemd 259 menandai awal dari akhir bagi kompatibilitas dengan Skrip layanan System VTelah diumumkan bahwa pada versi berikutnya, komponen lama seperti systemd-sysv-generator, systemd-rc-local-generator, dan systemd-sysv-install akan dihapus secara permanen.

Seiring dengan pembersihan kode lama ini, persyaratan perangkat lunak minimum untuk ekosistem systemd telah ditingkatkan secara signifikan:

  • Kernel Linux: Versi minimum 5.10.
  • Glibc: 2.34.
  • OpenSSL: 3.0.0.
  • Util-linux: 2.37.
  • Lainnya: Python 3.9.0, cryptsetup 2.4.0 dan libseccomp 2.4.0.

Modularitas dan pemuatan dinamis di libsystemd

Como bagian dari inisiatif untuk mengurangi ketergantungan langsung di perusahaan rintisan, libsystemd sekarang menggunakan pemuatan dinamis melalui dlopen(). Untuk pustaka seperti libacl, libblkid, libseccomp, libselinux, dan libmount, sistem hanya akan memuat pustaka-pustaka ini ke dalam memori ketika fungsi spesifiknya dibutuhkan oleh suatu proses, sehingga mengoptimalkan penggunaan sumber daya. Selain itu, fungsionalitas libcap telah diintegrasikan langsung ke dalam libsystemd, menyederhanakan rantai ketergantungan.

El Pengaturan penanganan log telah berubah dari konfigurasi default-nya: mode penyimpanan jurnal (Jurnal) perubahan dari "otomatis" menjadi "permanen", terlepas dari apakah direktori /var/log/journal sebelumnya sudah ada atau belum.

Di bidang jaringan dan virtualisasi:

  • systemd-networkd dan systemd-nspawn: Dukungan untuk aturan NAT menggunakan iptables dihapus, sehingga nftables menjadi satu-satunya opsi yang kompatibel.
  • systemd-terselesaikan: Sekarang memungkinkan penggunaan hook lokal (hooks) di /run/systemd/resolve.hook/ untuk ikut campur dalam permintaan resolusi nama.
  • systemd-importd: Logika untuk bekerja dengan file TAR telah diintegrasikan secara native. Selain itu, baik `importd` maupun `machined` sekarang dapat dijalankan pada level pengguna, memungkinkan manajemen image di direktori lokal pengguna (`~/.local/state/machines/`).

Inovasi lainnya

API berbasis protokol Varlink menerima peningkatan untuk memungkinkan akses ke pengaturan layanan dan untuk melakukan panggilan IPC. seperti Reload() dan Reexecute(). Bagi administrator sistem, penyertaan properti OOMKills dalam layanan akan sangat berguna, karena memungkinkan mereka untuk melacak berapa kali suatu proses dihentikan karena kekurangan memori langsung dari alat systemd.

Terakhir, proses booting sistem menjadi lebih modern dengan penghapusan dukungan untuk TPM 1.2 di systemd-boot, yang memfokuskan semua upaya keamanan pada standar TPM 2.0.

Jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat berkonsultasi dengan detailnya di tautan berikut.