systemd 259: Υποστήριξη Musl, run0 empower και αντίο στο System V

Βασικά σημεία:
  • Μερική υποστήριξη για Musl libc (απαιτείται χειροκίνητη ρύθμιση παραμέτρων στο Meson).
  • run0 --empower επιτρέπει προνομιακές ενέργειες χωρίς να αλλάζει το UID χρήστη.
  • Επιβεβαιωμένη κατάργηση των σεναρίων του System V και αυξημένες απαιτήσεις (Kernel 5.10+).
  • Το libsystemd φορτώνει πλέον εξωτερικές βιβλιοθήκες χρησιμοποιώντας την dlopen() για να μειώσει τις εξαρτήσεις.
  • Η αποθήκευση ημερολογίου είναι πλέον «μόνιμη» από προεπιλογή.

systemd

Μετά από λίγο περισσότερο από τρεις μήνες ανάπτυξης, η έναρξη του τη νέα έκδοση του systemd 259. Αυτή η ενημέρωση εισάγει αλλαγές στην αρχιτεκτονική του συστήματος, επισημαίνοντας την ανοιχτότητα σε εναλλακτικές βιβλιοθήκες προτύπων, την πιο αυστηρή διαχείριση προνομίων και τις αυστηρότερες τεχνικές απαιτήσεις για μελλοντικές εκδόσεις.

Μία από τις πιο πολυσυζητημένες κινήσεις σε αυτόν τον κύκλο είναι η μετάβαση προς μεγαλύτερη αρθρωσιμότητα και η εξάλειψη των παλαιών εξαρτήσεων, ανοίγοντας το δρόμο για ένα οικοσύστημα Linux που απομακρύνεται οριστικά από τα πρότυπα των προηγούμενων δεκαετιών.

Κύρια νέα χαρακτηριστικά του συστήματοςd 259

Η νέα έκδοση 259 του systemd ξεχωρίζει ως η πρώτη έκδοση για την προσθήκη μερικής συμβατότητας με το Musl, η δημοφιλής βιβλιοθήκη προτύπων C σε ελαφριές διανομές και ενσωματωμένα περιβάλλοντα. Αυτή η ενσωμάτωση Η διαχείρισή του γίνεται μέσω της επιλογής libc στο σύστημα δημιουργίας Meson. Ωστόσο, επειδή το Musl δεν υλοποιεί τη λειτουργικότητα NSS (Name Service Switch), πολλά στοιχεία του systemd παραμένουν απενεργοποιημένα σε αυτήν τη ρύθμιση παραμέτρων.

Μεταξύ τωναξιοσημείωτες απουσίες κατά τη μεταγλώττιση με Musl είναι nss-systemd, nss-resolve, systemd-homed, systemd-userdbd και η παράμετρος DynamicUserΕπιπλέον, δεν είναι δυνατή η εκτέλεση του systemd-nspawn χωρίς δικαιώματα σε αυτήν τη βιβλιοθήκη. Οι προγραμματιστές έχουν προειδοποιήσει ότι η διατήρηση αυτής της υποστήριξης σε μελλοντικές εκδόσεις θα εξαρτηθεί από τη ζήτηση της κοινότητας και τη σταθερότητα τυχόν πρόσθετων επιπέδων συμβατότητας που θα αναπτυχθούν.

Ένα άλλο νέο χαρακτηριστικό της νέας έκδοσης είναι στο βοηθητικό πρόγραμμα run0, σχεδιασμένο ως μια σύγχρονη και ασφαλής εναλλακτική λύση στο sudo, το οποίο έχει λάβει η νέα επιλογή – ενδυνάμωση. Αυτή η λειτουργία Σας επιτρέπει να συνδεθείτε με αυξημένα δικαιώματα. χωρίς να χρειάζεται να αλλάξετε το αναγνωριστικό χρήστη (UID) σε root.

Εκτός αυτού, αντί να αναθέσουμε τον πλήρη έλεγχο μέσω της εναλλαγής χρηστών, το –empower χρησιμοποιεί δείκτες δυνατοτήτων πυρήνα, όπως το CAP_SYS_ADMIN, να χορηγήσει τις απολύτως απαραίτητες άδειες για να πραγματοποιούν προνομιακές κλήσεις συστήματος. Επιπλέον, οι διεργασίες που προκύπτουν ενσωματώνονται σε μια συγκεκριμένη ομάδα που τους παρέχει πρόσβαση σε ενέργειες Polkit, διατηρώντας έναν πιο ισχυρό διαχωρισμό προνομίων από το παραδοσιακό μοντέλο sudo.

Το τέλος μιας εποχής: Αντίο στο System V και νέες απαιτήσεις

Το systemd 259 σηματοδοτεί την αρχή του τέλους για συμβατότητα με το Σενάρια υπηρεσίας System VΈχει ανακοινωθεί ότι στην επόμενη έκδοση, παλαιότερα στοιχεία όπως τα systemd-sysv-generator, systemd-rc-local-generator και systemd-sysv-install θα αφαιρεθούν οριστικά.

Μαζί με αυτόν τον καθαρισμό του παλιού κώδικα, οι ελάχιστες απαιτήσεις λογισμικού για το οικοσύστημα systemd έχουν αυξηθεί σημαντικά:

  • Πυρήνας Linux: Ελάχιστη έκδοση 5.10.
  • Γλιμπρόκ: 2.34.
  • OpenSSL: 3.0.0.
  • Util-linux: 2.37.
  • Άλλα: Python 3.9.0, cryptsetup 2.4.0 και libseccomp 2.4.0.

Modularity και δυναμική φόρτωση στο libsystemd

Κόμο μέρος μιας πρωτοβουλίας για τη μείωση των εξαρτήσεων απευθείας κατά την εκκίνηση, Το libsystemd χρησιμοποιεί πλέον δυναμική φόρτωση μέσω του dlopen() Για βιβλιοθήκες όπως οι libacl, libblkid, libseccomp, libselinux και libmount, το σύστημα θα φορτώνει αυτές τις βιβλιοθήκες στη μνήμη μόνο όταν οι συγκεκριμένες λειτουργίες τους απαιτούνται από μια διεργασία, βελτιστοποιώντας τη χρήση πόρων. Επιπλέον, η λειτουργικότητα του libcap έχει ενσωματωθεί απευθείας στο libsystemd, απλοποιώντας την αλυσίδα εξαρτήσεων.

El Η διαχείριση αρχείων καταγραφής έχει αλλάξει την προεπιλεγμένη διαμόρφωσή της: η λειτουργία αποθήκευσης ημερολογίου (Εφημερίδα) αλλάζει από «αυτόματη» σε «μόνιμη», ανεξάρτητα από το αν ο κατάλογος /var/log/journal υπήρχε προηγουμένως.

Στον τομέα των δικτύων και της εικονικοποίησης:

  • systemd-networkd και systemd-nspawn: Η υποστήριξη για κανόνες NAT που χρησιμοποιούν iptables καταργείται, αφήνοντας το nftables ως τη μόνη συμβατή επιλογή.
  • systemd-επίλυση: Πλέον επιτρέπει τη χρήση τοπικών hooks (αγκίστρων) στο /run/systemd/resolve.hook/ για την παρέμβαση σε αιτήματα επίλυσης ονομάτων.
  • systemd-εισαγόμενο: Η λογική για την εργασία με αρχεία TAR έχει ενσωματωθεί εγγενώς. Επιπλέον, τόσο το `importd` όσο και το `machined` μπορούν πλέον να εκτελεστούν σε επίπεδο χρήστη, επιτρέποντας τη διαχείριση εικόνων στον τοπικό κατάλογο του χρήστη (`~/.local/state/machines/`).

Άλλες καινοτομίες

Το API που βασίζεται σε πρωτόκολλο Το Varlink έλαβε βελτιώσεις για να επιτρέπει την πρόσβαση στις ρυθμίσεις υπηρεσίας και την πραγματοποίηση κλήσεων IPC. όπως οι Reload() και Reexecute(). Για τους διαχειριστές συστημάτων, η συμπερίληψη της ιδιότητας OOMKills στις υπηρεσίες θα είναι πολύ χρήσιμη, καθώς θα τους επιτρέψει να παρακολουθούν πόσες φορές τερματίστηκε μια διεργασία λόγω έλλειψης μνήμης απευθείας από τα εργαλεία systemd.

Τέλος, η διαδικασία εκκίνησης του συστήματος γίνεται πιο σύγχρονη με την κατάργηση της υποστήριξης για το TPM 1.2 στο systemd-boot, εστιάζοντας όλες τις προσπάθειες ασφαλείας στο πρότυπο TPM 2.0.

Εάν ενδιαφέρεστε να μάθετε περισσότερα σχετικά με αυτό, μπορείτε να συμβουλευτείτε το λεπτομέρειες στον παρακάτω σύνδεσμο.