systemd 259: Musl-stöd, run0-stöd och adjö till System V

Nyckelord:
  • Delvis stöd för Musl libc (kräver manuell konfiguration i Meson).
  • run0 --empower tillåter privilegierade åtgärder utan att ändra användarens UID.
  • Bekräftad utfasning av System V-skript och ökade krav (Kernel 5.10+).
  • libsystemd laddar nu externa bibliotek med hjälp av dlopen() för att minska beroenden.
  • Journallagring är nu "permanent" som standard.

SYSTEMD

Efter drygt tre månaders utveckling, lanseringen av den nya versionen av systemd 259. Den här uppdateringen introducerar ändringar i systemarkitekturen, vilket framhäver öppenheten för alternativa standardbibliotek, strängare behörighetshantering och striktare tekniska krav för framtida versioner.

En av de mest omtalade rörelserna i denna cykel är övergången till större modularitet och eliminering av äldre beroenden, vilket banar väg för ett Linux-ekosystem som definitivt rör sig bort från standarderna från tidigare decennier.

De viktigaste nya funktionerna i systemd 259

Den nya systemd-versionen 259 utmärker sig genom att vara den första versionen som lägger till delvis kompatibilitet med Musl, det populära C-standardbiblioteket i lättviktsdistributioner och inbäddade miljöer. Denna integration Det hanteras via libc-alternativet i Meson-byggsystemet. Eftersom Musl inte implementerar NSS-funktionen (Name Service Switch) förblir dock flera systemd-komponenter inaktiverade i den här konfigurationen.

Bland de enanmärkningsvärda frånvaron vid sammanställning med Musl hittade nss-systemd, nss-resolve, systemd-homed, systemd-userdbd och DynamicUser-parameternDessutom är det inte möjligt att köra systemd-nspawn utan behörigheter under detta bibliotek. Utvecklarna har varnat för att upprätthållandet av detta stöd i framtida versioner kommer att bero på efterfrågan från communityn och stabiliteten hos eventuella ytterligare kompatibilitetslager som utvecklas.

En annan ny funktion i den nya versionen är i run0-verktyget, utformad som ett modernt och säkert alternativ till sudo, som har fått det nya alternativet – bemyndiga. Denna funktion Det låter dig logga in med förhöjda rättigheter. utan att behöva ändra användaridentifieraren (UID) till root.

Förutom det, istället för att delegera total kontroll genom användarbyte använder –empower kärnkapacitetsindikatorer, såsom CAP_SYS_ADMIN, att bevilja de absolut nödvändiga tillstånden för att göra privilegierade systemanrop. Dessutom integreras de resulterande processerna i en specifik grupp som ger dem åtkomst till Polkit-åtgärder, vilket upprätthåller en mer robust separation av privilegier än den traditionella sudo-modellen.

Slutet på en era: Adjö till System V och nya krav

systemd 259 markerar början på slutet för kompatibilitet med System V-tjänstskriptDet har meddelats att äldre komponenter som systemd-sysv-generator, systemd-rc-local-generator och systemd-sysv-install kommer att tas bort permanent i nästa version.

Tillsammans med denna rensning av gammal kod har minimikraven för programvarusystemet för systemd höjts avsevärt:

  • Linuxkärna: Minsta version 5.10.
  • Glibc: 2.34.
  • OpenSSL: 3.0.0.
  • Util-linux: 2.37.
  • Övrigt: Python 3.9.0, cryptsetup 2.4.0 och libseccomp 2.4.0.

Modularitet och dynamisk laddning i libsystemd

Como en del av ett initiativ för att minska beroenden direkt vid uppstart, libsystemd använder nu dynamisk laddning via dlopen() För bibliotek som libacl, libblkid, libseccomp, libselinux och libmount kommer systemet bara att ladda dessa bibliotek i minnet när deras specifika funktioner krävs av en process, vilket optimerar resursanvändningen. Dessutom har libcap-funktionalitet integrerats direkt i libsystemd, vilket förenklar beroendekedjan.

El Logghanteringen har ändrat sin standardkonfiguration: logglagringsläget (tidskrift) ändras från "automatisk" till "permanent", oavsett om katalogen /var/log/journal fanns tidigare.

Inom området nätverk och virtualisering:

  • systemd-networkd och systemd-nspawn: Stöd för NAT-regler med iptables har tagits bort, vilket lämnar nftables som det enda kompatibla alternativet.
  • systemd-löst: Det tillåter nu användning av lokala hooks (krokar) i /run/systemd/resolve.hook/ för att ingripa i namnmatchningsförfrågningar.
  • systemd-importerad: Logik för att arbeta med TAR-filer har integrerats direkt. Dessutom kan både `importd` och `machined` nu köras på användarnivå, vilket möjliggör avbildningshantering i användarens lokala katalog (`~/.local/state/machines/`).

Andra innovationer

Det protokollbaserade API:et Varlink har fått förbättringar för att ge åtkomst till tjänstinställningar och för att göra IPC-samtal såsom Reload() och Reexecute(). För systemadministratörer kommer inkluderingen av OOMKills-egenskapen i tjänster att vara mycket användbar, eftersom det gör det möjligt för dem att spåra hur många gånger en process avslutades på grund av minnesbrist direkt från systemd-verktygen.

Slutligen blir systemstartprocessen modernare genom att stödet för TPM 1.2 tas bort i systemd-boot, vilket fokuserar alla säkerhetsinsatser på TPM 2.0-standarden.

Om du är intresserad av att veta mer om det kan du konsultera detaljer i följande länk.