Rilascio del gestore di sistema systemd 257

Dopo sei mesi di sviluppo, è stato presentato il rilascio del gestore di sistema systemd 257. Le modifiche chiave includono: nuove utility systemd-sbsign e systemd-keyutil, supporto per MPTCP attivato tramite socket, supporto iniziale per la compilazione con la libreria C Musl, utility updatectl per gestire l'installazione di aggiornamenti tramite systemd-sysupdate, la possibilità di avviare servizi in uno spazio dei PID separato, protezione contro l'eliminazione accidentale di file durante l'uso di «systemd-tmpfiles —purge».

Tra le novità della nuova versione:

  • È stata aggiunta una nuova utility systemd-sbsign per firmare digitalmente file eseguibili nel formato PE (Portable Executable), destinati all'uso durante l'avvio in modalità EFI Secure Boot. Per la generazione della firma possono essere utilizzati motori e provider forniti dalla libreria OpenSSL. Systemd-sbsign può essere utilizzato come alternativa alle applicazioni sbsigntool e pesign nell'utility ukify per la generazione di immagini del kernel universali UKI (Unified Kernel Image), che combinano in un unico file il caricatore per UEFI (UEFI boot stub), l'immagine del kernel Linux e l'ambiente di sistema initrd caricato in memoria.
  • È stata aggiunta una nuova utility systemd-keyutil, che implementa varie operazioni su chiavi private e certificati X.509. Ad esempio, systemd-keyutil può essere utilizzato per verificare la possibilità di caricare chiavi private e certificati, nonché per estrarre da essi le chiavi pubbliche in formato PEM.
  • Negli unit file «.socket», utilizzati per attivare il meccanismo di attivazione tramite socket (avvio dei processi quando si tenta di stabilire una connessione di rete), è stata implementata la supporto per MPTCP (Multipath TCP), un'estensione del protocollo TCP per organizzare il funzionamento della connessione TCP con la consegna dei pacchetti contemporaneamente su più percorsi attraverso diverse interfacce di rete collegate a diversi indirizzi IP.
  • Sono state incluse le modifiche necessarie per la compilazione utilizzando la standard C library Musl.
  • È stata aggiunta la possibilità di utilizzare sequenze ANSI per animare l'indicazione del progresso in vari componenti di systemd che visualizzano indicatori di progresso delle operazioni (ad esempio, systemd-repart, systemd-sysupdate/updatectl e importctl). Attualmente, queste sequenze sono supportate solo in Windows Terminal (si prevede che questa funzionalità sarà trasferita anche nei terminal emulator per Linux nel tempo).
  • Le funzionalità del componente systemd-sysupdate, utilizzato per identificare automaticamente, scaricare e installare aggiornamenti utilizzando un meccanismo di sostituzione atomica di partizioni, file o directory, sono state ampliate (vengono utilizzate due partizioni/file/directory indipendenti, su una delle quali si trova la risorsa attualmente in uso e sull'altra viene installato l'aggiornamento successivo, dopo di che le partizioni/file/directory vengono scambiate). In pratica, systemd-sysupdate è già utilizzato in GNOME OS.

    Oltre al processo systemd-sysupdate, è stato aggiunto un servizio omonimo che consente di utilizzare D-Bus per gestire l'aggiornamento del sistema da parte di un utente non privilegiato. Per gestire il servizio, è stata inclusa anche una nuova utility chiamata updatectl. È stato aggiunto un flag «—offline» a systemd-sysupdate per vietare il download dei metadati dalla rete e utilizzare solo le versioni già scaricate sul sistema locale. È stato aggiunto supporto per l'output in formato JSON a tutti i comandi.

  • Per i servizi è stata implementata una nuova proprietà «PrivatePIDs», che consente di avviare processi con PID 1 (processo init) in un namespace di identificatori di processo separato. Nell'ambiente creato per il processo avviato saranno visibili solo i processi del namespace creato per esso.
  • Nelle regole di udev è stato aggiunto il supporto per le corrispondenze senza distinzione di maiuscole e minuscole (ad esempio, ‘ATTR{foo}==i»abcd»‘). Attraverso udev è stata implementata la fornitura di accesso a dispositivi non privilegiati per gli utenti locali attraverso ‘uaccess’, per il dispositivo /dev/udmabuf, necessario per lavorare con telecamere IPMI tramite libcamera. In udev è stato garantito il riconoscimento di vari portafogli hardware con interfaccia USB e l'assegnazione della proprietà ID_HARDWARE_WALLET, permettendo così di applicare la modalità ‘uaccess’ per l'accesso agli utenti non privilegiati.
  • Nel file /etc/os-release sono stati aggiunti nuovi campi RELEASE_TYPE, EXPERIMENT e EXPERIMENT_URL. ‘RELEASE_TYPE’ può assumere i valori ‘experimental’, ‘development’, ‘stable’ e ‘lts’ per distinguere le versioni stabili da quelle in sviluppo e le build sperimentali. I parametri EXPERIMENT ed EXPERIMENT_URL sono destinati a chiarire la natura della build sperimentale.
  • Nell'utilità run0, sviluppata come sostituto del programma sudo, è stata aggiunta l'opzione ‘—shell-prompt-prefix’, che definisce la stringa di prefisso per il prompt della shell. Di default, viene visualizzato l'emoji ‘🦸’ come prefisso per evidenziare visivamente la sessione con privilegi elevati.
  • In systemd-tmpfiles, to avoid mistakenly deleting the wrong files, the ‘—purge’ option now applies only to configurations in tmpfiles.d/ that explicitly have the ‘$’ flag set. To perform the ‘—purge’ operation, at least one file from the tmpfiles.d/ directory must also be specified. For lines with type ‘L’, the ‘?’ flag has been added; when specified, a symbolic link will be created only if the target file exists.
  • In the service manager and accompanying utilities, the transition to using PIDFD instead of PID for process tracking code has continued. The PIDFD identifier is linked to a specific process and remains unchanged, while a PID can be associated with a different process after the current one, associated with that PID, terminates.
  • For services, the ability to specify the value ‘debug’ in the ‘RestartMode’ parameter has been implemented, whereby restarting a failed service will be done with debugging mode enabled (the environment variable DEBUG_INVOCATION=1 is set), and the value LogLevelMax will temporarily be raised to the debug level.
  • Nel gestore PID 1 è stata implementata la possibilità di caricare regole per il modulo LSM IPE (Integrity Policy Enforcement), che definisce la politica di integrità per l'intero sistema (quali operazioni sono consentite e come deve essere verificata l'autenticità dei componenti).
  • Nei file unit «.timer» è stata aggiunta l'opzione «DeferReactivation», che consente di saltare l'attivazione successiva del timer se il servizio non ha ancora completato la sua esecuzione dalla precedente attivazione.
  • Nell'opzione dei file unit PrivateUsers è stata implementata la possibilità di specificare un valore «identity» per abilitare il mapping degli identificatori degli utenti durante la creazione di uno spazio dei nomi (user namespace).
  • Nell'opzione dei file unit PrivateTmp è stato aggiunto il supporto per il valore «disconnected», che utilizza istanze separate di tmpfs per le directory /tmp/ e /var/tmp/.
  • Nell'opzione dei file unit ProtectControlGroups è stato aggiunto il supporto per le nuove modalità «private» e «strict», che creano un nuovo spazio dei nomi cgroup (cgroup namespace) e montano cgroupfs per il servizio. Quando l'opzione «strict» è attivata, il montaggio di cgroupfs avviene in modalità di sola lettura.
  • Nelle impostazioni StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory e ConfigurationDirectory è stata introdotta la possibilità di utilizzare il flag ‘:ro’ per limitare l'accesso alle relative directory in modalità sola lettura.
  • Nell'opzione della riga di comando del kernel «systemd.machine_id» è stato aggiunto il supporto per il valore «firmware», in cui l'identificativo del sistema (machine ID) verrà calcolato in base all'UUID da SMBIOS/DeviceTree.
  • È stato aggiunto il supporto per le chiamate di sistema mseal(), listmount() e statmount(), apparse nelle recenti versioni del kernel Linux.
  • Nelle utility resolvectl, timedatectl e systemd-inhibit è stato aggiunto il supporto per l'autenticazione interattiva tramite Polkit.
  • Nell'utility systemctl è stata aggiunta la possibilità di utilizzare il flag «—now» nel comando «reenable».
  • Nell'utility systemd-mount è stata aggiunta l'opzione «—json» per l'output in formato JSON (ad esempio, specificando insieme a «—list-devices» verrà generato un elenco di dispositivi in formato JSON).
  • Nell'utility «localectl» sono state aggiunte le opzioni «-l» e «—full» per disabilitare il troncamento delle righe lunghe nell'output.
  • Nel file sleep.conf è stata aggiunta l'opzione HibernateOnACPower che consente di posticipare il passaggio in modalità sospensione fino allo scollegamento del dispositivo dalla fonte di alimentazione.
  • In systemd-sysusers, the 'u' lines now support the '!' modifier, allowing for the creation of completely locked user accounts (previously, blocking a user required setting an incorrect password, which, for example, did not prevent login via SSH key authentication).
  • In systemd-coredump, the 'EnterNamespace' option has been added, providing access to the mount namespace of any crashed processes to retrieve their debugging symbols. In practice, this option can be useful for performing backtraces of core files from applications running in isolated containers.
  • In systemd-logind, the combination Ctrl-Alt-Shift-Esc is enabled for sending the signal org.freedesktop.login1.SecureAttentionKey to the user environment components, requesting the display of a secure login dialog. The setting 'DesignatedMaintenanceTime' has been implemented for automatically scheduling shutdown at a specified time. Analogous to DRM device support and evdev, access configuration for unprivileged users to hidraw devices (game controllers and joysticks) has been added.
  • In systemd-machined, support has been added for unprivileged clients di macchine virtuali and containers. Access to systemd-machined functionality is provided via the Varlink API, in addition to D-Bus.
  • A new section '[IPv6AddressLabel]' has been added to the networkd.conf configuration file for configuring labels and prefixes for IPv6 addresses.
  • The command 'networkctl edit' has been enhanced with the option '—stdin' to obtain the file content from standard input. The commands 'networkctl edit' and 'networkctl cat' now support editing and displaying .netdev files by specifying the network interface. An option '—no-ask-password' has been added to disable interactive authorization.
  • Nell'utility ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart e systemd-sbsign è stata aggiunta l'opzione «—certificate-source» per caricare il certificato X.509 tramite il provider OpenSSL anziché il caricamento diretto da un file.
  • In systemd-boot è stata aggiunta la possibilità di utilizzare i pulsanti di controllo del volume per navigare su e giù nel menu di avvio, utile su dispositivi come gli smartphone. Nell'utility bootctl è stata aggiunta la supporto per l'installazione del database UEFI Secure Boot in formato ESL(db/dbx/…) per systemd-boot.
  • In journalctl è stata aggiunta l'opzione «—list-invocation» per mostrare un elenco delle invocazioni delle unità e l'opzione «—invocation» («-I») per mostrare i log relativi solo a una specifica invocazione.
  • In systemd-nspawn è stato aggiunto il supporto per l'uso non privilegiato di FUSE (Filesystem in Userspace) nei container. Utilizzando l'opzione «—bind-user» viene garantito il passaggio delle chiavi SSH dell'utente nella container, necessarie per l'accesso via SSH.
  • In libsystemd è stata aggiunta una nuova interfaccia software «sd-json», che utilizza il formato JSON, e un'interfaccia «sd-varlink», che utilizza IPC Varlink.
  • La versione base del kernel raccomandata è stata aumentata alla release 5.4, rilasciata nel 2019. L'anno prossimo si prevede di interrompere il supporto per i kernel più vecchi e di designare la release 5.4 come versione base supportata minima.
  • Il supporto per cgroups v1 è stato dichiarato obsoleto e disabilitato per impostazione predefinita (per abilitare nella riga di comando del kernel è necessario specificare SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 oltre ad attivarlo nelle impostazioni di systemd). Nella prossima release di systemd 258 è prevista la rimozione completa del codice relativo a cgroups v1. Nella versione systemd 258 è anche prevista la rimozione del supporto per gli script dei servizi System V.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster