Na drie maanden ontwikkeling is de release van de systeemmanager systemd 259 beschikbaar. Belangrijke wijzigingen: ondersteuning voor de standaardbibliotheek Musl, het commando "run0 --empower" voor het uitvoeren van geprivilegieerde acties zonder de UID te wijzigen, dynamische laadfunctionaliteit voor externe bibliotheken die in libsystemd worden gevraagd, en het negeren van configuratiebestanden door " .ignore" aan de naam toe te voegen.
Onder de veranderingen in de nieuwe release:
- De gedeeltelijke ondersteuning voor de standaard C-bibliotheek Musl is toegevoegd, die wordt ingeschakeld door de waarde "musl" in de "libc"-opties in het bouwsysteem Meson in te stellen. Aangezien de Musl-bibliotheek geen NSS-functionaliteit biedt, zijn de componenten nss-systemd, nss-resolve, systemd-homed, systemd-nsresourced, systemd-userdbd, evenals de parameter DynamicUser en de mogelijkheid om systemd-nspawn zonder privileges uit te voeren, niet beschikbaar bij het bouwen van systemd met Musl. De ontwikkelaars van systemd garanderen nog niet dat de ondersteuning voor Musl in toekomstige releases behouden blijft. De beslissing zal afhangen van het succes van de ontwikkeling van de laag die extra functionaliteit bovenop Musl biedt, evenals de vraag naar het project en meldingen van Musl-specifieke fouten.
- In de run0-tool, gepresenteerd als een veilige vervanging voor het programma sudo dat bovenop systemd-run draait, is de optie "--empower" toegevoegd, waarmee een nieuwe sessie met verhoogde privileges kan worden gestart zonder over te schakelen naar de gebruiker root. Het uitvoeren van geprivilegieerde acties zonder de UID te wijzigen, wordt georganiseerd door capabilities-vlaggen zoals CAP_SYS_ADMIN in te stellen, die voldoende zijn voor toegang tot de meeste geprivilegieerde systeemaanroepen. De processen die worden gestart, worden ook in een aparte groep "empower" geplaatst, waaraan toegang is verleend tot de meeste acties van Polkit.
- Er is besloten om in de volgende release de ondersteuning voor servicescripts in het System V-formaat te verwijderen. De volgende componenten zijn gepland voor verwijdering: systemd-sysv-install, systemd-rc-local-generator en systemd-sysv-generator. In de volgende release worden ook de minimale versies verhoogd: Linux-kernel 5.10, glibc 2.34, openssl 3.0.0, python 3.9.0, libxcrypt 4.4.0, util-linux 2.37, elfutils 0.177, cryptsetup 2.4.0, libseccomp 2.4.0.
- Als onderdeel van het initiatief om afhankelijkheden te verminderen, is in libsystemd dynamische laadinstructie van de bibliotheken libacl, libblkid, libseccomp, libselinux, libmount geĆÆmplementeerd via de aanroep van dlopen() in situaties waarin hun functies daadwerkelijk nodig zijn. Via dlopen() is ook interactie met het Linux-auditsysteem en PAM gerealiseerd. Functionaliteit die voorheen via de tussenlaagbibliotheek libcap werd aangeroepen, is geĆÆntegreerd in libsystemd.
- In systemd-resolved is de mogelijkheid toegevoegd om lokale handlers te koppelen die bij elke resolutieverzoek van lokale namen worden aangeroepen. Handlers worden geplaatst in de map /run/systemd/resolve.hook/.
- In de gebruikersdatabase is een UUID-veld toegevoegd, en in de utility userdbctl is de optie "āuuid" toegevoegd voor zoeken op UUID.
- Bestanden met configuraties die eindigen op " .ignore" worden genegeerd.
- In systemd-importd is ingebouwde logica voor het werken met TAR-archieven geĆÆmplementeerd, die libarchive gebruikt in plaats van de aanroep van de GNU tar utility. De mogelijkheid is gerealiseerd om systemd-machined en systemd-importd uit te voeren in de context van gebruikers, en niet op systeemniveau, met het laden van systeembestanden in ~/ .local/ state/ machines/. Voor het selecteren van de werkmodus zijn de opties "āuser" en "āsystem" toegevoegd aan de utility importctl.
- De standaard logopslagmodus is gewijzigd van 'auto' naar 'persistent' (voorheen hing de modus af van de aanwezigheid van de map /var/log/journal).
- In systemd-networkd en systemd-nspawn is de ondersteuning voor het maken van NAT-regels via iptables/libiptc beƫindigd. Alleen de ondersteuning voor nftables blijft bestaan.
- In systemd-boot en systemd-stub is de ondersteuning voor TPM 1.2 beƫindigd (de ondersteuning voor TPM 2.0 blijft bestaan).
- In systemd-machined is standaard de montage van 'verborgen' schijfbeelden, waarvan de naam met een punt begint, in alleen-lezen modus gegarandeerd.
- De API op basis van het Varlink-protocol is uitgebreid, en kan nu worden gebruikt voor toegang tot de instellingen van services. IPC-aanroepen Reload() en Reexecute() zijn gerealiseerd. Aanroepen zijn toegevoegd voor toegang tot functionaliteit en instellingen van systemd-repart, systemd-resolved en systemd-networkd.
- De instelling ExecReloadPost is toegevoegd, waarmee het mogelijk is om opdrachten uit te voeren na het herladen van de serviceconfiguratie.
- Voor services zijn de eigenschappen OOMKills en ManagedOOMKills geïmplementeerd, die het aantal processen bevatten dat door de kernel of systemd-oomd gedwongen is beëindigd wegens geheugentekort.
- Voor tijdelijke services is de eigenschap RootDirectoryFileDescriptor toegevoegd, die de bestandsdescriptor van de rootdirectory definieert.
- De instelling UserNamespacePath is toegevoegd, waarmee een unit kan worden gekoppeld aan een gebruikersnamenruimte (user namespace) door het pad in het pseudo-bestandssysteem /proc op te geven, vergelijkbaar met de instellingen IPCNamespacePath en NetworkNamespacePath. In systemd-nspawn is de instelling NamespacePath toegevoegd aan de sectie [Network] van .nspawn-bestanden om het netwerknaamruimte aan te geven.
- In systemd-sysext en systemd-confext is ondersteuning geĆÆmplementeerd voor aparte configuratiebestanden /etc/systemd/systemd-sysext.conf en /etc/systemd/systemd-confext.conf. De mogelijkheid is toegevoegd om de omgevingsvariabele SYSTEMD_SYSEXT_OVERLAYFS_MOUNT_OPTIONS en $SYSTEMD_CONFEXT_OVERLAYFS_MOUNT_OPTIONS te gebruiken voor de configuratie van de Overlayfs-mountopties.
- In systemd-udevd is de instelling OPTIONS="dump-json" toegevoegd voor het afdrukken van de status van het huidige evenement in JSON-formaat. In de functie net_id is het mogelijk gemaakt om voorspelbare namen voor draadloze netwerkinterfaces te genereren op systemen met DeviceTree. Symbolische links /dev/gpio/by-id/... voor GPIO-apparaten worden gegenereerd.
- Aan het commando "homectl update" is de mogelijkheid toegevoegd om de optie "--recovery-key" te gebruiken voor het toevoegen van reserve sleutels aan een bestaande gebruikersaccount (vroeger konden dergelijke sleutels alleen worden toegevoegd tijdens de creatie van de gebruiker).
- In systemd-homed zijn de opties "--prompt-shell" en "--prompt-groups" toegevoegd voor interactieve selectie van de shell en groep tijdens de eerste opstart met behulp van de service systemd-homed-firstboot.service. In systemd-firstboot is de optie "--prompt-keymap-auto" toegevoegd om de toetsenbordindeling te vragen bij gebruik via de lokale console tijdens de eerste opstart.
- In systemd-boot is de mogelijkheid toegevoegd om het niveau van logdetails in te stellen via de parameter log-level in loader.conf of het SMBIOS-veld io.systemd.boot.loglevel.
- In systemd-networkd zijn opties EmitDomain en Domain toegevoegd voor de DHCP-server, terwijl ook een handler is geĆÆmplementeerd voor het bepalen van de via DHCP verstrekte hostnamen via DNS-resolutie.
- In systemd-run is de optie "--root-directory" toegevoegd voor het starten van een service in de opgegeven rootdirectory. In systemd-run en run0 is de optie "--same-root-dir" ("-R") toegevoegd voor het starten van een service in dezelfde rootdirectory als die van de opstarter.
- In systemd-modules-load is de parallellisatie van het laden van kernelmodules geĆÆmplementeerd.
- In systemd-integrity-setup is ondersteuning toegevoegd voor de algoritmen HMAC-SHA256, PHMAC-SHA256 en PHMAC-SHA512.
Bron: opennet.ru
