systemd gestore di sistema versione 242

[: ru]

Dopo due mesi di sviluppo presentata rilascio del gestore di sistema systemd 242. Tra le innovazioni possiamo notare il supporto per i tunnel L2TP, la possibilità di controllare il comportamento di systemd-logind al riavvio tramite variabili d'ambiente, il supporto per partizioni di avvio XBOOTLDR estese per il montaggio /boot, la possibilità di avviare con una partizione di root in overlayfs, così come un gran numero di nuove impostazioni per diversi tipi di unità.

Principali modifiche:

  • systemd-networkd fornisce il supporto per i tunnel L2TP;
  • sd-boot e bootctl forniscono supporto per le partizioni XBOOTLDR (Extended Boot Loader) progettate per essere montate su /boot, oltre alle partizioni ESP montate su /efi o /boot/efi. Kernel, impostazioni, immagini initrd ed EFI possono ora essere avviati da entrambe le partizioni ESP e XBOOTLDR. Questa modifica consente di utilizzare il bootloader sd-boot in scenari più conservativi, quando il bootloader stesso si trova nell'ESP e i kernel caricati e i metadati associati vengono inseriti in una sezione separata;
  • Aggiunta la possibilità di eseguire l'avvio con l'opzione “systemd.volatile=overlay” passata al kernel, che consente di posizionare la partizione root in overlayfs e organizzare il lavoro sopra un'immagine di sola lettura della directory root con le modifiche scritte su un file directory separata in tmpfs (le modifiche in questa configurazione vengono perse dopo un riavvio). Per analogia, systemd-nspawn ha aggiunto l'opzione “--volatile=overlay” per utilizzare funzionalità simili nei contenitori;
  • systemd-nspawn ha aggiunto l'opzione "--oci-bundle" per consentire l'uso di bundle runtime per fornire l'avvio isolato di contenitori conformi alla specifica Open Container Initiative (OCI). Per l'uso nella riga di comando e nelle unità nspawn, viene proposto il supporto per varie opzioni descritte nella specifica OCI, ad esempio, le opzioni "--inaccessible" e "Inaccessible" possono essere utilizzate per escludere parti del file system e l'opzione " sono state aggiunte le opzioni --console” per configurare i flussi di output standard e "-pipe";
  • Aggiunta la possibilità di controllare il comportamento di systemd-logind tramite variabili d'ambiente: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU e
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. Usando queste variabili, puoi connettere i tuoi gestori del processo di riavvio (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu e
    /run/systemd/reboot-to-boot-loader-entry) o disabilitarli del tutto (se il valore è impostato su false);

  • Aggiunte opzioni “-boot-load-menu=" e
    “—boot-loader-entry=", che consente di selezionare una voce specifica del menu di avvio o una modalità di avvio dopo un riavvio;

  • Aggiunto un nuovo comando di isolamento sandbox “RestrictSUIDSGID=”, che utilizza seccomp per vietare la creazione di file con flag SUID/SGID;
  • Garantito che le restrizioni “NoNewPrivileges” e “RestrictSUIDSGID” siano applicate per impostazione predefinita nei servizi con la modalità di generazione dell'ID utente dinamico (“DynamicUser” abilitato);
  • L'impostazione predefinita MACAddressPolicy=persistent nei file .link è stata modificata per coprire più dispositivi. Le interfacce dei bridge di rete, dei tunnel (tun, tap) e dei collegamenti aggregati (bond) non si identificano se non con il nome dell'interfaccia di rete, quindi questo nome viene ora utilizzato come base per legare gli indirizzi MAC e IPv4. Inoltre è stata aggiunta l'impostazione “MACAddressPolicy=random” che può essere utilizzata per associare indirizzi MAC e IPv4 ai dispositivi in ​​ordine casuale;
  • I file di unità ".device" generati tramite systemd-fstab-generator non includono più le unità ".mount" corrispondenti come dipendenze nella sezione "Wants=". Il semplice collegamento di un dispositivo non avvia più automaticamente un'unità da montare, ma tali unità possono comunque essere avviate per altri motivi, ad esempio come parte di local-fs.target o come dipendenza da altre unità che dipendono da local-fs.target ;
  • Aggiunto il supporto per le maschere (“*”, ecc.) ai comandi “networkctl list/status/lldp” per filtrare determinati gruppi di interfacce di rete in base a parte del loro nome;
  • La variabile d'ambiente $PIDFILE è ora impostata utilizzando il percorso assoluto configurato nei servizi tramite il parametro "PIDFile=;".
  • I server Cloudflare pubblici (1.1.1.1) sono stati aggiunti al numero di server DNS di backup utilizzati se il DNS principale non è esplicitamente definito. Per ridefinire l'elenco dei server DNS di backup è possibile utilizzare l'opzione “-Ddns-servers=";
  • Quando viene rilevata la presenza di un controller del dispositivo USB, viene avviato automaticamente un nuovo gestore usb-gadget.target (quando il sistema è in esecuzione su un dispositivo periferico USB);
  • Per i file unit è stata implementata l'impostazione “CPUQuotaPeriodSec=” che determina l'intervallo di tempo rispetto al quale viene misurata la quota di tempo della CPU, impostata tramite l'impostazione “CPUQuota=”;
  • Per i file unit è stata implementata l'impostazione “ProtectHostname=" che impedisce ai servizi di modificare le informazioni sul nome host, anche se dispongono dei permessi appropriati;
  • Per i file unit è stata implementata l'impostazione “NetworkNamespacePath=", che consente di associare uno spazio dei nomi a servizi o unità socket specificando il percorso del file dello spazio dei nomi nello pseudo-FS /proc;
  • Aggiunta la possibilità di disabilitare la sostituzione delle variabili di ambiente per i processi avviati utilizzando l'impostazione “ExecStart=" aggiungendo un carattere ":" prima del comando di avvio;
  • Per i timer (unità .timer) nuovi flag “OnClockChange=" e
    “OnTimezoneChange=", con il quale è possibile controllare la chiamata dell'unità quando cambia l'ora del sistema o il fuso orario;

  • Aggiunte nuove impostazioni “ConditionMemory=" e "ConditionCPUs=", che determinano le condizioni per chiamare un'unità in base alla dimensione della memoria e al numero di core della CPU (ad esempio, un servizio ad alta intensità di risorse può essere avviato solo se la quantità richiesta di RAM disponibile);
  • Aggiunta una nuova unità time-set.target che accetta l'ora di sistema impostata localmente, senza utilizzare la riconciliazione con server orari esterni utilizzando l'unità time-sync.target. La nuova unità può essere utilizzata da servizi che necessitano della precisione degli orologi locali non sincronizzati;
  • Aggiunta l'opzione “--show-transaction” a “systemctl start” e comandi simili, quando specificata viene visualizzato un riepilogo di tutti i lavori aggiunti alla coda a causa dell'operazione richiesta;
  • systemd-networkd implementa la definizione di un nuovo stato "asservito", utilizzato al posto di "degradato" o "portante" per le interfacce di rete che fanno parte di collegamenti aggregati o bridge di rete. Per le interfacce primarie, in caso di problemi con uno dei collegamenti compositi, è stato aggiunto lo stato 'portante degradata';
  • Aggiunta l'opzione "IgnoreCarrierLoss=" alle unità .network per salvare le impostazioni di rete in caso di perdita di connessione;
  • Attraverso l'impostazione "RequiredForOnline=" nelle unità .network, è ora possibile impostare lo stato di collegamento minimo accettabile richiesto per trasferire l'interfaccia di rete su "online" e attivare il gestore systemd-networkd-wait-online;
  • Aggiunta l'opzione "--any" a systemd-networkd-wait-online per attendere la disponibilità di una qualsiasi delle interfacce di rete specificate anziché di tutte, nonché l'opzione "--operative-state=" per determinare lo stato di il collegamento che indica la disponibilità;
  • Aggiunte le impostazioni "UseAutonomousPrefix=" e "UseOnLinkPrefix=" alle unità .network, che possono essere utilizzate per ignorare i prefissi durante la ricezione
    annuncio da un router IPv6 (RA, Router Advertisement);

  • Nelle unità .network sono state aggiunte le impostazioni “MulticastFlood=”, “NeighborSuppression=” e “Learning=” per modificare i parametri di funzionamento del bridge di rete, nonché l'impostazione “TripleSampling=” per modificare la modalità TRIPLE-SAMPLING di interfacce virtuali CAN;
  • Alle unità .netdev sono state aggiunte le impostazioni “PrivateKeyFile=" e "PresharedKeyFile=", con le quali è possibile specificare chiavi private e condivise (PSK) per le interfacce VPN WireGuard;
  • Aggiunte le opzioni same-cpu-crypt e submission-from-crypt-cpus a /etc/crypttab, che controllano il comportamento dello scheduler durante la migrazione del lavoro relativo alla crittografia tra i core della CPU;
  • systemd-tmpfiles fornisce l'elaborazione dei file di blocco prima di eseguire operazioni nelle directory con file temporanei, che consente di disabilitare il lavoro sulla pulizia dei file obsoleti per la durata di determinate azioni (ad esempio, quando si decomprime un archivio tar in /tmp, file molto vecchi potrebbero essere aperti che non possono essere eliminati prima della fine dell'azione con essi);
  • Il comando "systemd-analyze cat-config" offre la possibilità di analizzare una configurazione divisa in più file, ad esempio i preset dell'utente e del sistema, il contenuto di tmpfiles.d e sysusers.d, le regole udev, ecc.
  • Aggiunta l'opzione "--cursor-file=" a "journalctl" per specificare un file da caricare e salvare la posizione del cursore;
  • Aggiunta definizione dell'hypervisor ACRN e del sottosistema WSL (sottosistema Windows per Linux) a systemd-detect-virt per il successivo branching utilizzando l'operatore condizionale “ConditionVirtualization”;
  • Durante l'installazione di systemd (quando si esegue "ninja install"), la creazione di collegamenti simbolici ai file systemd-networkd.service, systemd-networkd.socket,
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service e systemd-timesyncd.service. Per creare questi file, ora devi eseguire il comando “systemctl preset-all”.

Fonteopennet.ru

[: En]

Dopo due mesi di sviluppo presentata rilascio del gestore di sistema systemd 242. Tra le innovazioni possiamo notare il supporto per i tunnel L2TP, la possibilità di controllare il comportamento di systemd-logind al riavvio tramite variabili d'ambiente, il supporto per partizioni di avvio XBOOTLDR estese per il montaggio /boot, la possibilità di avviare con una partizione di root in overlayfs, così come un gran numero di nuove impostazioni per diversi tipi di unità.

Principali modifiche:

  • systemd-networkd fornisce il supporto per i tunnel L2TP;
  • sd-boot e bootctl forniscono supporto per le partizioni XBOOTLDR (Extended Boot Loader) progettate per essere montate su /boot, oltre alle partizioni ESP montate su /efi o /boot/efi. Kernel, impostazioni, immagini initrd ed EFI possono ora essere avviati da entrambe le partizioni ESP e XBOOTLDR. Questa modifica consente di utilizzare il bootloader sd-boot in scenari più conservativi, quando il bootloader stesso si trova nell'ESP e i kernel caricati e i metadati associati vengono inseriti in una sezione separata;
  • Aggiunta la possibilità di eseguire l'avvio con l'opzione “systemd.volatile=overlay” passata al kernel, che consente di posizionare la partizione root in overlayfs e organizzare il lavoro sopra un'immagine di sola lettura della directory root con le modifiche scritte su un file directory separata in tmpfs (le modifiche in questa configurazione vengono perse dopo un riavvio). Per analogia, systemd-nspawn ha aggiunto l'opzione “--volatile=overlay” per utilizzare funzionalità simili nei contenitori;
  • systemd-nspawn ha aggiunto l'opzione "--oci-bundle" per consentire l'uso di bundle runtime per fornire l'avvio isolato di contenitori conformi alla specifica Open Container Initiative (OCI). Per l'uso nella riga di comando e nelle unità nspawn, viene proposto il supporto per varie opzioni descritte nella specifica OCI, ad esempio, le opzioni "--inaccessible" e "Inaccessible" possono essere utilizzate per escludere parti del file system e l'opzione " sono state aggiunte le opzioni --console” per configurare i flussi di output standard e "-pipe";
  • Aggiunta la possibilità di controllare il comportamento di systemd-logind tramite variabili d'ambiente: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU e
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. Usando queste variabili, puoi connettere i tuoi gestori del processo di riavvio (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu e
    /run/systemd/reboot-to-boot-loader-entry) o disabilitarli del tutto (se il valore è impostato su false);

  • Aggiunte opzioni “-boot-load-menu=" e
    “—boot-loader-entry=", che consente di selezionare una voce specifica del menu di avvio o una modalità di avvio dopo un riavvio;

  • Aggiunto un nuovo comando di isolamento sandbox “RestrictSUIDSGID=”, che utilizza seccomp per vietare la creazione di file con flag SUID/SGID;
  • Garantito che le restrizioni “NoNewPrivileges” e “RestrictSUIDSGID” siano applicate per impostazione predefinita nei servizi con la modalità di generazione dell'ID utente dinamico (“DynamicUser” abilitato);
  • L'impostazione predefinita MACAddressPolicy=persistent nei file .link è stata modificata per coprire più dispositivi. Le interfacce dei bridge di rete, dei tunnel (tun, tap) e dei collegamenti aggregati (bond) non si identificano se non con il nome dell'interfaccia di rete, quindi questo nome viene ora utilizzato come base per legare gli indirizzi MAC e IPv4. Inoltre è stata aggiunta l'impostazione “MACAddressPolicy=random” che può essere utilizzata per associare indirizzi MAC e IPv4 ai dispositivi in ​​ordine casuale;
  • I file di unità ".device" generati tramite systemd-fstab-generator non includono più le unità ".mount" corrispondenti come dipendenze nella sezione "Wants=". Il semplice collegamento di un dispositivo non avvia più automaticamente un'unità da montare, ma tali unità possono comunque essere avviate per altri motivi, ad esempio come parte di local-fs.target o come dipendenza da altre unità che dipendono da local-fs.target ;
  • Aggiunto il supporto per le maschere (“*”, ecc.) ai comandi “networkctl list/status/lldp” per filtrare determinati gruppi di interfacce di rete in base a parte del loro nome;
  • La variabile d'ambiente $PIDFILE è ora impostata utilizzando il percorso assoluto configurato nei servizi tramite il parametro "PIDFile=;".
  • I server Cloudflare pubblici (1.1.1.1) sono stati aggiunti al numero di server DNS di backup utilizzati se il DNS principale non è esplicitamente definito. Per ridefinire l'elenco dei server DNS di backup è possibile utilizzare l'opzione “-Ddns-servers=";
  • Quando viene rilevata la presenza di un controller del dispositivo USB, viene avviato automaticamente un nuovo gestore usb-gadget.target (quando il sistema è in esecuzione su un dispositivo periferico USB);
  • Per i file unit è stata implementata l'impostazione “CPUQuotaPeriodSec=” che determina l'intervallo di tempo rispetto al quale viene misurata la quota di tempo della CPU, impostata tramite l'impostazione “CPUQuota=”;
  • Per i file unit è stata implementata l'impostazione “ProtectHostname=" che impedisce ai servizi di modificare le informazioni sul nome host, anche se dispongono dei permessi appropriati;
  • Per i file unit è stata implementata l'impostazione “NetworkNamespacePath=", che consente di associare uno spazio dei nomi a servizi o unità socket specificando il percorso del file dello spazio dei nomi nello pseudo-FS /proc;
  • Aggiunta la possibilità di disabilitare la sostituzione delle variabili di ambiente per i processi avviati utilizzando l'impostazione “ExecStart=" aggiungendo un carattere ":" prima del comando di avvio;
  • Per i timer (unità .timer) nuovi flag “OnClockChange=" e
    “OnTimezoneChange=", con il quale è possibile controllare la chiamata dell'unità quando cambia l'ora del sistema o il fuso orario;

  • Aggiunte nuove impostazioni “ConditionMemory=" e "ConditionCPUs=", che determinano le condizioni per chiamare un'unità in base alla dimensione della memoria e al numero di core della CPU (ad esempio, un servizio ad alta intensità di risorse può essere avviato solo se la quantità richiesta di RAM disponibile);
  • Aggiunta una nuova unità time-set.target che accetta l'ora di sistema impostata localmente, senza utilizzare la riconciliazione con server orari esterni utilizzando l'unità time-sync.target. La nuova unità può essere utilizzata da servizi che necessitano della precisione degli orologi locali non sincronizzati;
  • Aggiunta l'opzione “--show-transaction” a “systemctl start” e comandi simili, quando specificata viene visualizzato un riepilogo di tutti i lavori aggiunti alla coda a causa dell'operazione richiesta;
  • systemd-networkd implementa la definizione di un nuovo stato "asservito", utilizzato al posto di "degradato" o "portante" per le interfacce di rete che fanno parte di collegamenti aggregati o bridge di rete. Per le interfacce primarie, in caso di problemi con uno dei collegamenti compositi, è stato aggiunto lo stato 'portante degradata';
  • Aggiunta l'opzione "IgnoreCarrierLoss=" alle unità .network per salvare le impostazioni di rete in caso di perdita di connessione;
  • Attraverso l'impostazione "RequiredForOnline=" nelle unità .network, è ora possibile impostare lo stato di collegamento minimo accettabile richiesto per trasferire l'interfaccia di rete su "online" e attivare il gestore systemd-networkd-wait-online;
  • Aggiunta l'opzione "--any" a systemd-networkd-wait-online per attendere la disponibilità di una qualsiasi delle interfacce di rete specificate anziché di tutte, nonché l'opzione "--operative-state=" per determinare lo stato di il collegamento che indica la disponibilità;
  • Aggiunte le impostazioni "UseAutonomousPrefix=" e "UseOnLinkPrefix=" alle unità .network, che possono essere utilizzate per ignorare i prefissi durante la ricezione
    annuncio da un router IPv6 (RA, Router Advertisement);

  • Nelle unità .network sono state aggiunte le impostazioni “MulticastFlood=”, “NeighborSuppression=” e “Learning=” per modificare i parametri di funzionamento del bridge di rete, nonché l'impostazione “TripleSampling=” per modificare la modalità TRIPLE-SAMPLING di interfacce virtuali CAN;
  • Alle unità .netdev sono state aggiunte le impostazioni “PrivateKeyFile=" e "PresharedKeyFile=", con le quali è possibile specificare chiavi private e condivise (PSK) per le interfacce VPN WireGuard;
  • Aggiunte le opzioni same-cpu-crypt e submission-from-crypt-cpus a /etc/crypttab, che controllano il comportamento dello scheduler durante la migrazione del lavoro relativo alla crittografia tra i core della CPU;
  • systemd-tmpfiles fornisce l'elaborazione dei file di blocco prima di eseguire operazioni nelle directory con file temporanei, che consente di disabilitare il lavoro sulla pulizia dei file obsoleti per la durata di determinate azioni (ad esempio, quando si decomprime un archivio tar in /tmp, file molto vecchi potrebbero essere aperti che non possono essere eliminati prima della fine dell'azione con essi);
  • Il comando "systemd-analyze cat-config" offre la possibilità di analizzare una configurazione divisa in più file, ad esempio i preset dell'utente e del sistema, il contenuto di tmpfiles.d e sysusers.d, le regole udev, ecc.
  • Aggiunta l'opzione "--cursor-file=" a "journalctl" per specificare un file da caricare e salvare la posizione del cursore;
  • Aggiunta definizione dell'hypervisor ACRN e del sottosistema WSL (sottosistema Windows per Linux) a systemd-detect-virt per il successivo branching utilizzando l'operatore condizionale “ConditionVirtualization”;
  • Durante l'installazione di systemd (quando si esegue "ninja install"), la creazione di collegamenti simbolici ai file systemd-networkd.service, systemd-networkd.socket,
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service e systemd-timesyncd.service. Per creare questi file, ora devi eseguire il comando “systemctl preset-all”.

Fonte: opennet.ru

[:]

Aggiungi un commento