systemd 259: Suport Musl, run0 empower i adéu a System V

Punts clau:
  • Suport parcial per a Musl libc (requereix configuració manual a Meson).
  • run0 --empower permet accions privilegiades sense canviar l'UID d'usuari.
  • Deprecació confirmada de scripts System V i augment de requisits (Kernel 5.10+).
  • libsystemd ara carrega llibreries externes mitjançant dlopen() per reduir dependències.
  • L'emmagatzematge de Journal ara és 'persistent' per defecte.

systemd

Després de poc més de tres mesos de desenvolupament, s'ha donat a conèixer el llançament de la nova versió de systemd 259. Aquesta actualització introdueix canvis a l'arquitectura del sistema, destacant l'obertura cap a biblioteques estàndard alternatives, una gestió de privilegis més rigorosa i un enduriment dels requisits tècnics per a versions futures.

Un dels moviments més comentats en aquest cicle és la transició cap a una modularitat més gran i la neteja de dependències heretades, preparant el terreny per a un ecosistema de Linux que s'allunya definitivament dels estàndards de dècades passades.

Principals novetats de systemd 259

La nova versió systemd 259 es destaca per ser la primera versió a afegir compatibilitat parcial amb Musl, la biblioteca estàndard de C popular en distribucions lleugeres i entorns embeguts. Aquesta integració es gestiona a través de l'opció libc al sistema de compilació Meson. No obstant això, pel fet que Musl no implementa la funcionalitat NSS (Name Service Switch), diversos components de systemd romanen desactivats en aquesta configuració.

Entre les ausències notables en compilar amb Musl es troben nss-systemd, nss-resolve, systemd-homed, systemd-userdbd i el paràmetre DynamicUser. A més, no es pot executar systemd-nspawn sense privilegis sota aquesta biblioteca. Els desenvolupadors han advertit que el manteniment d'aquest suport en futures versions dependrà de la demanda de la comunitat i de l'estabilitat de les capes de compatibilitat addicionals que es desenvolupin.

Una altra de les novetats que presenta la nova versió és en la utilitat run0, dissenyada com una alternativa moderna i segura a sudo, la qual ha rebut la nova opció –empower. Aquesta funció permet iniciar sessions amb privilegis elevats sense canviar l'identificador d'usuari (UID) a root.

A més d'això, en lloc de delegar el control total mitjançant el canvi d'usuari, –empower utilitza indicadors de capacitats del nucli, com ara CAP_SYS_ADMIN, per atorgar els permisos estrictament necessaris per fer trucades al sistema privilegiades. A més, els processos resultants s'integren en un grup específic que els dóna accés a accions de Polkit, mantenint una separació de privilegis més robusta que el model tradicional de sudo.

La fi d'una era: Adéu a System V i nous requisits

systemd 259 marca el començament de la fi per la compatibilitat amb els scripts de servei de System V. S'ha anunciat que en la propera versió s'eliminaran definitivament components històrics com systemd-sysv-generator, systemd-rc-local-generator i systemd-sysv-install.

Al costat d'aquesta neteja de codi antic, s'han elevat significativament els requisits mínims de programari per a l'ecosistema systemd:

  • Kernel de Linux: Mínim versió 5.10.
  • Glibc: 2.34.
  • OpenSSL: 3.0.0.
  • Util-linux: 2.37.
  • Altres: Python 3.9.0, cryptsetup 2.4.0 i libseccomp 2.4.0.

Modularitat i càrrega dinàmica a libsystemd

Com a part d'una iniciativa per reduir les dependències directes a l'arrencada, libsystemd ara utilitza càrrega dinàmica mitjançant dlopen() per a biblioteques com libacl, libblkid, libseccomp, libselinux i libmount. Això significa que el sistema només carregarà aquestes biblioteques en memòria quan les vostres funcions específiques siguin requerides per un procés, optimitzant l'ús de recursos. Així mateix, s'ha integrat la funcionalitat de libcap directament a libsystemd, simplificant la cadena de dependències.

El maneig de logs ha canviat la seva configuració per defecte: el mode d'emmagatzematge del diari (Journal) passa de «automàtic» a «persistent», independentment de si el directori /var/log/journal existia prèviament.

A l'àmbit de xarxes i virtualització:

  • systemd-networkd i systemd-nspawn: S'elimina el suport per a regles NAT mitjançant iptables, deixant nftables com l'única opció compatible.
  • resolt per systemd: Ara permet l'ús de ganxos locals (hooks) a /run/systemd/resolve.hook/ per intervenir a les sol·licituds de resolució de noms.
  • systemd-importd: S'ha integrat la lògica per treballar amb fitxers TAR de forma nativa. A més, tant importd com machined ara es poden executar a nivell d'usuari, permetent gestionar imatges al directori local de l'usuari (~/.local/state/machines/).

altres innovacions

L'API basada en el protocol Varlink va rebre millores per permetre l'accés a configuracions de serveis i fer trucades IPC com Reload() i Reexecute(). Per als administradors de sistemes, la inclusió de la propietat OOMKills als serveis serà de gran utilitat, ja que permetrà rastrejar quantes vegades un procés va ser finalitzat per manca de memòria directament des de les eines de systemd.

Finalment, l'arrencada del sistema es torna més moderna amb l'eliminació del suport per a TPM 1.2 a systemd-boot, centrant tots els esforços de seguretat en l'estàndard TPM 2.0.

Si estàs interessat a poder conèixer més sobre això, pots consultar els detalls en el següent enllaç.