Udgivelsen af systemadministratoren systemd 257

Efter et halvt års udvikling er udgivelsen af systemd 257 blevet præsenteret. Nøgleændringer: nye værktøjer systemd-sbsign og systemd-keyutil, støtte for MPTCP ved aktivering via socket, indledende support til opbygning med Musl C-bibliotek, værktøjet updatectl til administration af opdateringsinstallationer via systemd-sysupdate, muligheden for at køre tjenester i separate PID-namespace, beskyttelse mod utilsigtet sletning af filer ved brug af «systemd-tmpfiles —purge».

Blandt ændringerne i den nye udgave:

  • Den nye værktøj systemd-sbsign tilføjet til at underskrive eksekverbare filer i PE (Portable Executable) format med en digital signatur, beregnet til brug ved opstart i EFI Secure Boot-tilstand. Til dannelse af signaturen kan der anvendes motorer og udbydere, der leveres af OpenSSL-biblioteket. Systemd-sbsign kan anvendes som et alternativ til applikationer som sbsigntool og pesign i værktøjet ukify ved dannelse af universelle kernelbilleder (UKI - Unified Kernel Image), der kombinerer en bootloader til UEFI (UEFI boot stub), et Linux-kernelbillede og et initrd-systemmiljø indlæst i hukommelsen.
  • Den nye værktøj systemd-keyutil tilføjet, som implementerer forskellige operationer på private nøgler og X.509-certifikater. For eksempel kan systemd-keyutil bruges til at verificere muligheden for at indlæse private nøgler og certifikater samt til at udtrække de offentlige nøgler i PEM-format.
  • I unit-filerne «.socket», der bruges til at muliggøre aktiveringsmekanismen via socket (start af processer ved forsøg på at etablere en netværksforbindelse), er der implementeret støtte til MPTCP (Multipath TCP), en udvidelse af TCP-protokollen til at organisere TCP-forbindelsen ved at levere pakker samtidig over flere ruter gennem forskellige netværksinterfaces, der er knyttet til forskellige. IP-adresser.
  • Der er inkluderet ændringer, der er nødvendige for at opbygge med den standard C-bibliotek Musl.
  • I forskellige komponenter af systemd, der viser indikatorer for fremdrift af operationer (f.eks. systemd-repart, systemd-sysupdate/updatectl og importctl), er muligheden for at bruge ANSI-sekvenser til at animere visning af fremdrift blevet tilføjet. Sådanne sekvenser understøttes i øjeblikket kun i Windows Terminal (det antages, at en lignende mulighed med tiden vil blive overført til terminalemulatorer for Linux).
  • Mulighederne for systemd-sysupdate-komponenten, der anvendes til automatisk at identificere, downloade og installere opdateringer ved brug af en atomar udskiftningsmekanisme for partitioner, filer eller kataloger, er blevet udvidet (der benyttes to uafhængige partitioner/filer/kataloger, hvoraf den ene indeholder den nuværende aktive ressource, mens den anden installerer den næste opdatering, hvorefter partitioner/filer/kataloger byttes om). I praksis anvendes systemd-sysupdate allerede i GNOME OS.

    Udover systemd-sysupdate-processen er der tilføjet en tjeneste med samme navn, der muliggør brug af D-Bus til at administrere systemopdateringer af uprivilegerede brugere. Der er også en ny utility, updatectl, inkluderet til styring af tjenesten. I systemd-sysupdate er der tilføjet et flag «—offline» for at forbyde download af metadata over netværket og kun anvende versioner, der allerede er downloadet til det lokale system. Alle kommandoer har fået støtte til output i JSON-format.

  • For tjenester er der implementeret en ny egenskab «PrivatePIDs», som gør det muligt at køre processer med PID 1 (init-proces) i et separat procesidentifikationsrum (PID namespace). I det miljø, der oprettes til den kørende proces, vil kun processer fra det oprettede navnerum være synlige.
  • Der er tilføjet understøttelse af match uden hensyntagen til store og små bogstaver i udev-reglerne (f.eks. ‘ATTR{foo}==i»abcd»‘). Gennem udev er der gjort det muligt for uprivilegerede lokale brugere at få adgang («uaccess») til enheden /dev/udmabuf, som er nødvendig for at arbejde med IPMI-kameraer gennem libcamera. I udev er der sikret genkendelse af forskellige hardware cryptocurrency-tegnebøger med USB-interface og indstilling af egenskaben ID_HARDWARE_WALLET for dem, hvilket muliggør anvendelse af «uaccess» til adgang for uprivilegerede brugere.
  • Der er tilføjet nye felter RELEASE_TYPE, EXPERIMENT og EXPERIMENT_URL i /etc/os-release-filen. «RELEASE_TYPE» kan have værdierne «experimental», «development», «stable» og «lts» for at adskille stabile versioner fra dem, der er under udvikling, og eksperimentelle builds. Parametrene EXPERIMENT og EXPERIMENT_URL er beregnet til at præcisere formålet med den eksperimentelle build.
  • I run0, der udvikles som en erstatning for sudo-programmet, er der tilføjet en mulighed "—shell-prompt-prefix", som definerer præfiksstrengen for kommandolinje-prompten. Som standard vises emoji'en "🦸" som præfiks for at fremhæve sessionen med forhøjede rettigheder.
  • I systemd-tmpfiles anvendes muligheden "—purge" nu kun på indstillinger i tmpfiles.d/ for hvilke flagget "$" er udtrykkeligt angivet, for at undgå fejlfjernelse af forkerte filer. Det kræves nu også at angive mindst én fil fra kataloget tmpfiles.d/ for at udføre "—purge"-operationen. For linjer af typen 'L' er der tilføjet flagget '?', som kun opretter symbolsk link, hvis den målrette fil findes.
  • I servicehåndtereren og de tilhørende værktøjer fortsættes implementeringen af proces-sporingskode til at anvende PIDFD i stedet for PID. PIDFD-identifikatoren er bundet til en specifik proces og ændres ikke, mens PID'en kan knyttes til en anden proces efter den aktuelle proces' afslutning, som er associeret med denne PID.
  • For tjenester er muligheden for at angive værdien "debug" i parameteren "RestartMode" blevet implementeret, hvor genstart af en fejlslagen tjeneste vil blive udført med aktivering af fejlfindingsmodus (miljøvariablen DEBUG_INVOCATION=1 er sat), og værdien LogLevelMax midlertidigt vil blive hævet til fejlfindingsniveau.
  • I PID 1-håndtereren er det blevet muligt at indlæse regler for LSM-modulet IPE (Integrity Policy Enforcement), som definerer politikker for at sikre integriteten af hele systemet (hvilke operationer der er tilladt og hvordan man skal verificere ægtheden af komponenterne).
  • I unit-filerne " .timer " er muligheden " DeferReactivation " tilføjet, hvilket giver mulighed for at springe den næste aktivering over i henhold til timeren, hvis tjenesten endnu ikke har afsluttet sit arbejde siden den sidste aktivering.
  • I parameteren for unit-filerne PrivateUsers er det muligt at angive værdien "identity" for at aktivere kortlægning af bruger-id'er ved oprettelse af et navnerum (user namespace).
  • I parameteren for unit-filerne PrivateTmp er der tilføjet understøttelse for værdien "disconnected", hvor separate forekomster af tmpfs vil blive anvendt til katalogerne /tmp/ og /var/tmp/.
  • Parameter unit files for ProtectControlGroups have been updated to support the new modes 'private' and 'strict', whereby a new cgroup namespace is created for the service, and cgroupfs is mounted. When the 'strict' option is set, cgroupfs is mounted in read-only mode.
  • The parameters StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory, and ConfigurationDirectory now allow the use of the ‘:ro’ flag to restrict access to the corresponding directories in read-only mode.
  • The kernel command line parameter 'systemd.machine_id' now supports the value 'firmware', which computes the system identifier (machine ID) based on the UUID from SMBIOS/DeviceTree.
  • Support for the system calls mseal(), listmount(), and statmount() has been added, which were introduced in recent Linux kernel releases.
  • Support for interactive authorization using Polkit has been added to the utilities resolvectl, timedatectl, and systemd-inhibit.
  • The systemctl utility now allows the use of the flag '—now' in the 'reenable' command.
  • The systemd-mount utility has added the option '—json' for output in JSON format (for example, when specified together with '—list-devices', a list of devices will be output in JSON format).
  • The 'localectl' utility has been updated with the options '-l' and '—full' to disable the truncation of long lines in the output.
  • The sleep.conf file now includes the HibernateOnACPower option, which allows delaying the switch to sleep mode until the device is disconnected from the mains power source.
  • In systemd-sysusers, the 'u' lines now support the modifier '!', which allows for the creation of completely locked user accounts (previously, blocking a user required setting an incorrect password, which did not result in blocking during SSH key authentication, for example).
  • The systemd-coredump utility includes the 'EnterNamespace' option, providing access to the mount namespace of any crashed processes to obtain their debugging symbols. This option can be useful for organizing backtraces of core files from applications running in isolated containers.
  • I systemd-logind er kombinationen Ctrl-Alt-Shift-Esc aktiveret for at sende signalet org.freedesktop.login1.SecureAttentionKey til komponenterne i brugermiljøet med anmodning om at vise dialogboksen for sikker login. Indstillingen 'DesignatedMaintenanceTime' er implementeret til automatisk at planlægge nedlukning på et givet tidspunkt. Ligesom ved understøttelse af DRM-enheder og evdev er der tilføjet støtte til indstilling af adgang for ikke-privilegerede brugere til hidraw-enheder (spilkontroller og joysticks).
  • I systemd-machined er der tilføjet støtte til registrering af ikke-privilegerede klienter virtual machines eller containere. Adgang til funktionaliteten i systemd-machined er givet via Varlink API'et, udover D-Bus.
  • I konfigurationsfilen networkd.conf er der tilføjet en ny sektion '[IPv6AddressLabel]' til konfiguration af etiketter og præfikser for IPv6-adresser
  • I kommandoen 'networkctl edit' er der tilføjet muligheden '--stdin' til at hente indholdet fra filen fra standardstrømmen. I kommandoerne 'networkctl edit' og 'networkctl cat' er der tilføjet støtte til redigering og visning af .netdev-filer ved at angive netværksgrænsefladen. Der er tilføjet muligheden '--no-ask-password' til at deaktivere interaktiv autorisation.
  • I værktøjerne ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart og systemd-sbsign er der tilføjet muligheden '--certificate-source' til at hente et X.509-certifikat gennem OpenSSL-udbyderen i stedet for at hente det direkte fra en fil.
  • I systemd-boot er muligheden for at bruge lydstyrkeknapper til at bevæge sig op og ned i bootmenuen tilføjet, hvilket kan være nyttigt på enheder som smartphones. Værktøjet bootctl har fået støtte til at installere UEFI Secure Boot-databasen i ESL-format (db/dbx/…) for systemd-boot.
  • I journalctl er der tilføjet muligheden '--list-invocation' til at vise en liste over enhedens opkald, og muligheden '--invocation' ('-I') til at vise logfiler, der kun er relateret til et bestemt opkald.
  • I systemd-nspawn er der tilføjet støtte til ikke-privilegeret brug af FUSE (Filesystem in Userspace) i containere. Ved brug af muligheden '--bind-user' er der sikret videregivelse af brugerens SSH-nøgler til containeren, nødvendige for adgang via SSH.
  • I libsystemd er der tilføjet et nyt programinterface 'sd-json', der bruger JSON-formatet, samt et interface 'sd-varlink', der bruger IPC Varlink.
  • Den anbefalede basisversion af kernen er opgraderet til version 5.4, der blev udgivet i 2019. I det kommende år planlægges det at ophøre med understøttelsen af ældre kerner og at anerkende version 5.4 som den minimum understøttede basisversion.
  • Understøttelsen af cgroups v1 er blevet anerkendt som forældet og er som standard deaktiveret (for at aktivere det i kernelens kommandolinje skal SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 angives, ud over aktivering i systemd's indstillinger). I den kommende release af systemd 258 planlægges det at fjerne al kode relateret til cgroups v1 helt. Derudover er det også planlagt at fjerne understøttelsen af System V service scripts i version systemd 258.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster