Keluaran pengurus sistem systemd 252 dengan sokongan UKI (Unified Kernel Image).

Selepas lima bulan pembangunan, keluaran pengurus sistem systemd 252 telah dibentangkan. Perubahan utama dalam versi baharu ialah penyepaduan sokongan untuk proses but moden, yang membolehkan anda mengesahkan bukan sahaja kernel dan pemuat but, tetapi juga komponen persekitaran sistem asas menggunakan tandatangan digital.

Kaedah yang dicadangkan melibatkan penggunaan imej kernel bersatu UKI (Imej Kernel Bersepadu) semasa memuatkan, yang menggabungkan pengendali untuk memuatkan kernel daripada UEFI (stub but UEFI), imej kernel Linux dan persekitaran sistem initrd yang dimuatkan ke dalam memori, digunakan. untuk pemulaan awal pada peringkat sebelum memasang akar FS . Imej UKI dibungkus sebagai fail boleh laku tunggal dalam format PE, yang boleh dimuatkan menggunakan pemuat but tradisional atau dipanggil terus daripada perisian tegar UEFI. Apabila dipanggil dari UEFI, adalah mungkin untuk mengesahkan integriti dan kebolehpercayaan tandatangan digital bukan sahaja kernel, tetapi juga kandungan initrd.

Untuk mengira parameter daftar TPM PCR (Daftar Konfigurasi Platform Modul Platform Dipercayai) yang digunakan untuk memantau integriti dan menjana tandatangan digital imej UKI, ukuran sistem utiliti baharu disertakan. Kunci awam yang digunakan dalam tandatangan dan maklumat PCR yang disertakan boleh dibenamkan terus ke dalam imej but UKI (kunci dan tandatangan disimpan dalam fail PE dalam medan '.pcrsig' dan '.pcrkey') dan diekstrak daripadanya oleh luaran atau utiliti dalaman.

Khususnya, utiliti systemd-cryptsetup, systemd-cryptenroll dan systemd-creds telah disesuaikan untuk menggunakan maklumat ini, yang dengannya anda boleh memastikan bahawa partition cakera yang disulitkan terikat pada kernel yang ditandatangani secara digital (dalam kes ini, akses kepada partition yang disulitkan disediakan hanya jika imej UKI telah lulus pengesahan melalui tandatangan digital berdasarkan parameter yang terdapat di TPM).

Selain itu, utiliti systemd-pcrphase disertakan, yang membolehkan anda mengawal pengikatan pelbagai peringkat but kepada parameter yang terletak dalam memori pemproses kripto yang menyokong spesifikasi TPM 2.0 (contohnya, anda boleh menjadikan kunci penyahsulitan partition LUKS2 hanya tersedia dalam imej initrd dan menyekat akses kepadanya pada peringkat kemudian muat turun).

Beberapa perubahan lain:

  • Memastikan bahawa tempat lalai ialah C.UTF-8 melainkan tempat lain ditentukan dalam tetapan.
  • Ia kini boleh melakukan operasi pratetap perkhidmatan yang lengkap ("pratetap systemctl") semasa but pertama. Mendayakan pratetap pada masa but memerlukan binaan dengan pilihan "-Dfirst-boot-full-preset", tetapi dirancang untuk didayakan secara lalai dalam keluaran akan datang.
  • Unit pengurusan pengguna melibatkan pengawal sumber CPU, yang memungkinkan untuk memastikan tetapan CPUWeight digunakan pada semua unit keping yang digunakan untuk memisahkan sistem kepada bahagian (app.slice, background.slice, session.slice) untuk mengasingkan sumber antara perkhidmatan pengguna yang berbeza, bersaing untuk sumber CPU. CPUWeight juga menyokong nilai "terbiar" untuk mengaktifkan mod peruntukan sumber yang sesuai.
  • Dalam unit sementara (“sementara”) dan dalam utiliti systemd-repart, tetapan mengatasi dibenarkan dengan mencipta fail lungsur dalam direktori /etc/systemd/system/name.d/.
  • Untuk imej sistem, bendera berakhir sokongan ditetapkan, menentukan fakta ini berdasarkan nilai parameter baharu “SUPPORT_END=” dalam fail /etc/os-release.
  • Menambahkan tetapan "ConditionCredential=" dan "AssertCredential=", yang boleh digunakan untuk mengabaikan atau ranap unit jika bukti kelayakan tertentu tidak terdapat dalam sistem.
  • Menambahkan tetapan "DefaultSmackProcessLabel=" dan "DefaultDeviceTimeoutSec=" pada system.conf dan user.conf untuk menentukan tahap keselamatan SMACK lalai dan tamat masa pengaktifan unit.
  • Dalam tetapan "ConditionFirmware=" dan "AssertFirmware=", keupayaan untuk menentukan medan SMBIOS individu telah ditambahkan, sebagai contoh, untuk melancarkan unit hanya jika medan /sys/class/dmi/id/board_name mengandungi nilai "Custom Papan”, anda boleh menentukan “ConditionFirmware=smbios” -field(board_name = "Custom Board")".
  • Semasa proses pemula (PID 1), keupayaan untuk mengimport bukti kelayakan daripada medan SMBIOS (Jenis 11, "rentetan vendor OEM") telah ditambah sebagai tambahan kepada definisinya melalui qemu_fwcfg, yang memudahkan penyediaan bukti kelayakan kepada mesin maya dan menghapuskan keperluan untuk alat pihak ketiga seperti awan -init dan pencucuhan.
  • Semasa penutupan, logik untuk menyahlekap sistem fail maya (proc, sys) telah diubah dan maklumat tentang proses yang menyekat nyahlekap sistem fail disimpan dalam log.
  • Penapis panggilan sistem (SystemCallFilter) membenarkan akses kepada panggilan sistem riscv_flush_icache secara lalai.
  • Pemuat but sd-boot menambah keupayaan untuk but dalam mod campuran, di mana kernel Linux 64-bit dijalankan daripada perisian tegar UEFI 32-bit. Menambahkan keupayaan percubaan untuk menggunakan kunci SecureBoot secara automatik daripada fail yang ditemui dalam ESP (pembahagian sistem EFI).
  • Pilihan baharu telah ditambahkan pada utiliti bootctl: “—all-architectures” untuk memasang binari untuk semua seni bina EFI yang disokong, “—root=" dan “—image=" untuk bekerja dengan direktori atau imej cakera, "—install-source =” untuk menentukan sumber pemasangan, "-efi-boot-option-description=" untuk mengawal nama masukan but.
  • Perintah 'list-automounts' telah ditambahkan pada utiliti systemctl untuk memaparkan senarai direktori yang dipasang secara automatik dan pilihan '--image=' untuk melaksanakan arahan berhubung dengan imej cakera yang ditentukan. Menambahkan pilihan "--state=" dan "--type=" pada arahan 'show' dan 'status'.
  • systemd-networkd menambah pilihan "TCPCongestionControlAlgorithm=" untuk memilih algoritma kawalan kesesakan TCP, "KeepFileDescriptor=" untuk menyimpan deskriptor fail antara muka TUN/TAP, "NetLabel=" untuk menetapkan NetLabels, "RapidCommit=" untuk mempercepatkan konfigurasi melalui DHCPv6 (RFC 3315). Parameter "RouteTable=" membenarkan penentuan nama jadual penghalaan.
  • systemd-nspawn membenarkan penggunaan laluan fail relatif dalam pilihan "--bind=" dan "--overlay=". Menambah sokongan untuk parameter 'rootidmap' pada pilihan "--bind=" untuk mengikat ID pengguna akar dalam bekas kepada pemilik direktori yang dipasang di sebelah hos.
  • systemd-resolved menggunakan OpenSSL sebagai hujung belakang penyulitannya secara lalai (sokongan gnutls dikekalkan sebagai pilihan). Algoritma DNSSEC yang tidak disokong kini dianggap tidak selamat dan bukannya mengembalikan ralat (SERVFAIL).
  • systemd-sysusers, systemd-tmpfiles dan systemd-sysctl melaksanakan keupayaan untuk memindahkan tetapan melalui mekanisme storan kelayakan.
  • Menambahkan arahan 'compare-versions' pada utiliti systemd-analyse untuk membandingkan rentetan dengan nombor versi (serupa dengan 'rpmdev-vercmp' dan 'dpkg --compare-versions'). Keupayaan untuk menapis unit dengan topeng telah ditambahkan pada perintah 'systemd-analyze dump'.
  • Apabila memilih mod tidur berbilang peringkat (gantung-kemudian-hibernate), masa yang dihabiskan dalam mod siap sedia kini dipilih berdasarkan ramalan baki hayat bateri. Peralihan segera kepada mod tidur berlaku apabila cas bateri kekal kurang daripada 5%.
  • Mod keluaran baharu "-o short-delta" telah ditambahkan pada 'journalctl', memaparkan perbezaan masa antara mesej berbeza dalam log.
  • systemd-repart menambah sokongan untuk mencipta partition dengan sistem fail Squashfs dan partition untuk dm-verity, termasuk dengan tandatangan digital.
  • Menambahkan tetapan "StopIdleSessionSec=" pada systemd-logind untuk menamatkan sesi tidak aktif selepas tamat masa yang ditentukan.
  • Systemd-cryptenroll telah menambah pilihan "--unlock-key-file=" untuk mengekstrak kunci penyahsulitan daripada fail dan bukannya menggesa pengguna.
  • Kini mungkin untuk menjalankan utiliti systemd-growfs dalam persekitaran tanpa udev.
  • systemd-backlight telah menambah baik sokongan untuk sistem dengan berbilang kad grafik.
  • Lesen untuk contoh kod yang disediakan dalam dokumentasi telah ditukar daripada CC0 kepada MIT-0.

Perubahan yang memecahkan keserasian:

  • Apabila menyemak nombor versi kernel menggunakan arahan ConditionKernelVersion, perbandingan rentetan ringkas kini digunakan dalam operator '=' dan '!=', dan jika operator perbandingan tidak dinyatakan sama sekali, padanan glob-mask boleh digunakan menggunakan aksara '*', '?' dan '[', ']'. Untuk membandingkan versi dalam gaya fungsi stverscmp(), anda harus menggunakan operator '', '='.
  • Teg SELinux yang digunakan untuk menyemak akses daripada fail unit kini dibaca pada masa fail dimuatkan, bukannya pada masa pemeriksaan akses.
  • Keadaan "ConditionFirstBoot" kini dicetuskan pada but pertama sistem hanya secara langsung pada peringkat but dan mengembalikan "false" apabila memanggil unit selepas but selesai.
  • Pada tahun 2024, systemd merancang untuk berhenti menyokong mekanisme pengehadan sumber cgroup v1, yang telah ditamatkan dalam keluaran systemd 248. Pentadbir dinasihatkan supaya berhati-hati sebelum memindahkan perkhidmatan berasaskan cgroup v2 ke cgroup v1. Perbezaan utama antara cgroups v2 dan v1 ialah penggunaan hierarki cgroups biasa untuk semua jenis sumber, bukannya hierarki berasingan untuk memperuntukkan sumber CPU, untuk mengawal penggunaan memori dan untuk I/O. Hierarki yang berasingan membawa kepada kesukaran dalam mengatur interaksi antara pengendali dan kepada kos sumber kernel tambahan apabila menggunakan peraturan untuk proses yang dirujuk dalam hierarki yang berbeza.
  • Pada separuh kedua 2023, kami merancang untuk menamatkan sokongan untuk hierarki direktori berpecah, di mana /usr dipasang secara berasingan daripada akar, atau /bin dan /usr/bin, /lib dan /usr/lib dipisahkan.

Sumber: opennet.ru

Tambah komen