Rilascio del gestore di sistema systemd 257

Dopo sei mesi di sviluppo è stata presentata la release del gestore di sistema systemd 257. Le modifiche principali: nuove utility systemd-sbsign e systemd-keyutil, supporto per MPTCP durante l'attivazione tramite socket, supporto iniziale per la compilazione con la libreria C Musl, utility updatectl per gestire l'installazione degli aggiornamenti attraverso systemd-sysupdate, possibilità di avviare servizi in uno spazio dei PID separato, protezione contro l'eliminazione accidentale di file usando «systemd-tmpfiles —purge».

Tra le novità del nuovo rilascio:

  • È stata aggiunta una nuova utility systemd-sbsign per firmare digitalmente i file eseguibili nel formato PE (Portable Executable), destinati all'uso durante l'avvio in modalità EFI Secure Boot. Per la formazione della firma possono essere utilizzati motori e fornitori forniti dalla libreria OpenSSL. Systemd-sbsign può essere utilizzata come alternativa alle applicazioni sbsigntool e pesign nell'utility ukify quando si creano immagini kernel universali UKI (Unified Kernel Image), che combinano in un unico file il bootloader 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 realizza varie operazioni su chiavi private e certificati X.509. Ad esempio, systemd-keyutil può essere utilizzata per verificare la possibilità di caricare chiavi private e certificati, nonché per estrarre da essi le chiavi pubbliche in formato PEM.
  • Negli unit «.socket», utilizzati per garantire il funzionamento del meccanismo di attivazione tramite socket (avvio dei processi quando viene tentata la connessione di rete), è stato implementato il supporto per MPTCP (Multipath TCP), un'estensione del protocollo TCP per gestire connessioni TCP con consegna dei pacchetti simultaneamente su più percorsi attraverso diverse interfacce di rete, collegate a diverse. indirizzi IP..
  • Nel pacchetto sono state incluse modifiche necessarie per la compilazione utilizzando la libreria C standard Musl.
  • Nei vari componenti di systemd, che mostrano indicatori di avanzamento delle operazioni (ad esempio, systemd-repart, systemd-sysupdate/updatectl e importctl), è stata aggiunta la possibilità di utilizzare sequenze ANSI per animare la visualizzazione del progresso. Tali sequenze sono attualmente supportate solo in Windows Terminal (si prevede che nel tempo questa possibilità venga estesa anche agli emulatori di terminale per Linux).
  • Le funzionalità del componente systemd-sysupdate sono state ampliate, utilizzato per identificare automaticamente, scaricare e installare aggiornamenti tramite un meccanismo atomico di sostituzione di partizioni, file o cartelle (vengono utilizzate due partizioni/file/cartelle indipendenti, una delle quali contiene la risorsa attualmente in uso, mentre l'altra riceve l'aggiornamento successivo, dopodiché le partizioni/file/cartelle vengono scambiate). In pratica, systemd-sysupdate è già in uso in GNOME OS.

    In aggiunta 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 di metadata attraverso la rete e utilizzare solo le versioni già scaricate nel sistema locale. Per tutti i comandi è stato aggiunto il supporto per l'output in formato JSON.

  • Per i servizi è stata implementata una nuova proprietà «PrivatePIDs», che consente di avviare processi con PID 1 (processo init) in uno spazio di identificatori di processo separato (spazio dei nomi PID). Nell'ambiente creato per il processo che viene avviato saranno visibili solo i processi dallo spazio dei nomi creato per esso.
  • Nelle regole udev è stata aggiunta la compatibilità per le corrispondenze senza distinzione tra maiuscole e minuscole (ad esempio, ‘ATTR{foo}==i»abcd»‘). Tramite udev è stata realizzata la possibilità di fornire agli utenti locali non privilegiati accesso («uaccess») al dispositivo /dev/udmabuf, necessario per lavorare con telecamere IPMI tramite libcamera. In udev è stato garantito il riconoscimento di diversi portafogli hardware con interfaccia USB e l'attribuzione della proprietà ID_HARDWARE_WALLET, permettendo l'applicazione della modalità «uaccess» per l'accesso degli 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 separare le versioni stabili dalle versioni in sviluppo e dalle build sperimentali. I parametri EXPERIMENT e 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 del prompt della shell. Per impostazione predefinita, come prefisso viene visualizzato l'emoji «🦸» per evidenziare visivamente la sessione con privilegi elevati.
  • In systemd-tmpfiles, per evitare la cancellazione accidentale di file non desiderati, l'opzione «—purge» viene ora applicata solo alle configurazioni in tmpfiles.d/, per le quali è esplicitamente impostato il flag «$». Inoltre, per eseguire l'operazione «—purge» è ora necessario specificare almeno un file dalla directory tmpfiles.d/. Per le righe di tipo ‘L’ è stato aggiunto il flag ‘?’, il quale, se specificato, farà sì che il collegamento simbolico venga creato solo in presenza del file di destinazione.
  • Nel gestore di servizi e nelle utilità correlate, è proseguita la transizione del codice di monitoraggio dei processi all'uso di PIDFD invece di PID. L'identificatore PIDFD è legato a un processo specifico e non cambia, mentre il PID può essere attribuito a un altro processo dopo il completamento del processo corrente associato a quel PID.
  • Per i servizi è stata implementata la possibilità di specificare nel parametro «RestartMode» il valore «debug», che comporta il riavvio del servizio guasto con l'attivazione della modalità di debug (viene impostata la variabile di ambiente DEBUG_INVOCATION=1), e il valore di LogLevelMax sarà temporaneamente elevato al livello di debug.
  • Nel gestore PID 1 è stata implementata la possibilità di caricare regole per il modulo LSM IPE (Integrity Policy Enforcement), che definiscono la politica di mantenimento dell'integrità per l'intero sistema (quali operazioni sono consentite e come verificare l'autenticità dei componenti).
  • Nei file unit «.timer» è stata aggiunta l'opzione «DeferReactivation», che consente di saltare l'attivazione successiva dell'timer se il servizio non ha ancora completato la sua esecuzione dalla precedente attivazione.
  • Nel parametro dei file unit PrivateUsers è stata implementata la possibilità di specificare il valore «identity» per abilitare il mapping degli identificatori degli utenti durante la creazione dello spazio dei nomi (user namespace).
  • Nel parametro dei file unit PrivateTmp è stata aggiunta la supporto per il valore «disconnected», in cui per le directory /tmp/ e /var/tmp/ verranno utilizzati istanze separate di tmpfs.
  • Nel parametro unit dei file ProtectControlGroups è stata aggiunta la supporto per le nuove modalità «private» e «strict», che creano uno nuovo spazio dei nomi cgroup (cgroup namespace) e montano cgroupfs. Con l'opzione «strict», il montaggio di cgroupfs avviene in modalità di sola lettura.
  • Nei parametri StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory e ConfigurationDirectory è stata fornita la possibilità di utilizzare il flag ‘:ro’ per limitare l'accesso alle relative directory in modalità di sola lettura.
  • Nel parametro della riga di comando del kernel «systemd.machine_id» è stata aggiunta la supporto per il valore «firmware», in base al quale l'identificatore di macchina (machine ID) verrà calcolato utilizzando UUID da SMBIOS/DeviceTree.
  • Aggiunta la supporto per le chiamate di sistema mseal(), listmount() e statmount(), introdotte nelle recenti versioni del kernel Linux.
  • Nelle utility resolvectl, timedatectl e systemd-inhibit è stata aggiunta la 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, se utilizzata insieme a «—list-devices», verrà restituita un elenco di dispositivi in formato JSON).
  • Nell'utility «localectl» sono state aggiunte le opzioni «-l» e «—full» per disabilitare il taglio delle lunghe righe durante l'output.
  • Nel file sleep.conf è stata aggiunta l'opzione HibernateOnACPower che consente di ritardare il passaggio alla modalità di risparmio energetico fino a quando il dispositivo non viene disconnesso dalla fonte di alimentazione.
  • In systemd-sysusers, nelle righe «u», è stata aggiunta la supporto per il modificatore «!», che consente di creare account utente completamente bloccati (in precedenza per bloccare un utente si utilizzava un password non valida, che, ad esempio, non portava a un blocco durante l'autenticazione tramite chiavi in SSH).
  • In systemd-coredump è stata aggiunta l'opzione «EnterNamespace», che fornisce accesso allo spazio di montaggio di qualsiasi processo terminato in modo anomalo per ottenere i loro simboli di debug. In pratica, l'opzione può essere utile per organizzare il backtrace dei file core delle applicazioni eseguite in contenitori isolati.
  • In systemd-logind è attivato il trattamento della combinazione Ctrl-Alt-Shift-Esc per inviare ai componenti dell'ambiente utente il segnale org.freedesktop.login1.SecureAttentionKey con richiesta di visualizzazione della finestra di dialogo per l'accesso sicuro al sistema. È stata implementata l'impostazione «DesignatedMaintenanceTime» per la pianificazione automatica dell'arresto in un momento specifico. Analogamente al supporto per i dispositivi DRM e evdev, è stato aggiunto il supporto per la configurazione dell'accesso degli utenti non privilegiati ai dispositivi hidraw (controller di gioco e joystick).
  • In systemd-machined è stato aggiunto il supporto per la registrazione da parte di client non privilegiati macchine virtuali e contenitori. È stato fornito accesso alle funzionalità di systemd-machined tramite API Varlink, oltre a D-Bus.
  • Nel file di configurazione networkd.conf è stata aggiunta una nuova sezione «[IPv6AddressLabel]» per configurare etichette e prefissi per indirizzi IPv6.
  • Nel comando ‘networkctl edit’ è stata aggiunta l'opzione «—stdin» per acquisire il contenuto del file dal flusso standard. Nei comandi ‘networkctl edit’ e ‘networkctl cat’ è stato aggiunto il supporto per la modifica e la visualizzazione di file .netdev specificando l'interfaccia di rete. È stata aggiunta l'opzione «—no-ask-password» per disabilitare l'autenticazione interattiva.
  • Nelle utility ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart e systemd-sbsign è stata aggiunta l'opzione «—certificate-source» per caricare un certificato X.509 attraverso il provider OpenSSL invece di caricarlo direttamente da un file.
  • In systemd-boot è stata aggiunta la possibilità di utilizzare i pulsanti di controllo del volume per spostarsi su e giù nel menu di avvio, il che può essere utile su dispositivi come smartphone. Nell'utility bootctl è stato aggiunto il supporto per impostare il 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 solo i log relativi a una determinata invocazione.
  • In systemd-nspawn è stato aggiunto il supporto per l'uso non privilegiato di FUSE (Filesystem in Userspace) nei contenitori. Utilizzando l'opzione «—bind-user» è stato garantito il passaggio delle chiavi SSH dell'utente nel contenitore, necessarie per l'accesso SSH.
  • In libsystemd è stata aggiunta una nuova interfaccia software «sd-json», che utilizza il formato JSON, e l'interfaccia «sd-varlink», che utilizza IPC Varlink.
  • La versione base raccomandata del kernel è stata innalzata alla release 5.4, rilasciata nel 2019. L'anno prossimo si prevede di interrompere il supporto per i kernel più vecchi e di segnare la release 5.4 come versione base minimamente supportata.
  • Il supporto per cgroups v1 è stato dichiarato obsoleto ed è disabilitato per impostazione predefinita (per attivarlo 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 si prevede di rimuovere completamente il codice relativo ai cgroups v1. Nella versione 258 di systemd è inoltre 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