systemd 259: תמיכה ב-Musl, העצמת run0, ולהתראות ל-System V

נקודות מפתח:
  • תמיכה חלקית ב-Musl libc (דורשת הגדרה ידנית ב-Meson).
  • run0 --empower מאפשר פעולות בעלות הרשאות ללא שינוי של מזהה המשתמש.
  • אושר כי הוצאה משימוש משימוש של סקריפטים של System V ודרישות מוגברות (ליבה 5.10+).
  • libsystemd טוען כעת ספריות חיצוניות באמצעות dlopen() כדי להפחית תלויות.
  • אחסון יומן הוא כעת 'מתמיד' כברירת מחדל.

system

לאחר קצת יותר משלושה חודשי פיתוח, ההשקה של הגרסה החדשה של 259. רחוב עדכון זה מציג שינויים בארכיטקטורת המערכת, תוך הדגשת הפתיחות לספריות סטנדרטיות חלופיות, ניהול הרשאות קפדני יותר ודרישות טכניות מחמירות יותר עבור גרסאות עתידיות.

אחת התנועות המדוברות ביותר במחזור זה היא המעבר למודולריות רבה יותר וביטול תלות מדור קודם, וסוללת את הדרך למערכת אקולוגית של לינוקס שמתרחקת באופן מוחלט מהסטנדרטים של העשורים הקודמים.

התכונות החדשות העיקריות של מערכת 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, שתוכנן כחלופה מודרנית ובטוחה לסודו, אשר קיבל האפשרות החדשה - העצמה. הפונקציה הזו זה מאפשר לך להתחבר עם הרשאות מוגברות. מבלי צורך לשנות את מזהה המשתמש (UID) ל-root.

חוץ מזה, במקום להאציל שליטה מוחלטת באמצעות החלפת משתמשים, –empower משתמש במדדי יכולות ליבה, כגון CAP_SYS_ADMIN, להעניק את האישורים הדרושים לחלוטין לבצע קריאות מערכת מורשות. בנוסף, התהליכים המתקבלים משולבים בקבוצה ספציפית המעניקה להם גישה לפעולות Polkit, תוך שמירה על הפרדת הרשאות חזקה יותר מאשר מודל sudo המסורתי.

סוף עידן: להתראות למערכת V ולדרישות החדשות

systemd 259 מסמן את תחילת הסוף עבור תאימות עם ה- סקריפטים של שירות System Vהוכרז כי בגרסה הבאה, רכיבים מדור קודם כגון systemd-sysv-generator, systemd-rc-local-generator ו-systemd-sysv-install יוסרו לצמיתות.

יחד עם ניקוי קוד ישן זה, דרישות התוכנה המינימליות עבור המערכת האקולוגית systemd הועלו משמעותית:

  • ליבת לינוקס: גרסה 5.10 לפחות.
  • גליבק: 2.34.
  • OpenSSL: 3.0.0.
  • Util-linux: 2.37.
  • אחר: Python 3.9.0, cryptsetup 2.4.0 ו-libseccomp 2.4.0.

מודולריות וטעינה דינמית ב-libsystemd

קומו חלק מיוזמה להפחתת תלות ישירות בהפעלה, libsystemd משתמש כעת בטעינה דינמית דרך dlopen() עבור ספריות כגון libacl, libblkid, libseccomp, libselinux ו-libmount, המערכת תטען ספריות אלו לזיכרון רק כאשר הפונקציות הספציפיות שלהן נדרשות על ידי תהליך, ובכך תייעל את ניצול המשאבים. בנוסף, פונקציונליות libcap שולבה ישירות ב-libsystemd, מה שמפשט את שרשרת התלות.

El טיפול ביומנים שינה את תצורת ברירת המחדל שלו: מצב אחסון היומן (כתב העת) שינויים מ"אוטומטי" ל"מתמיד", ללא קשר לשאלה האם הספרייה /var/log/journal הייתה קיימת בעבר.

בתחום הרשתות והווירטואליזציה:

  • systemd-networkd ו- systemd-nspawn: התמיכה בכללי NAT ​​באמצעות iptables הוסרה, מה שמותיר את nftables כאפשרות התואמת היחידה.
  • נפתר על ידי systemd: כעת זה מאפשר שימוש ב-hooks מקומיים (hooks) ב-/run/systemd/resolve.hook/ כדי להתערב בבקשות זיהוי שמות.
  • systemd-importd: לוגיקה לעבודה עם קבצי TAR שולבה באופן טבעי. יתר על כן, כעת ניתן להפעיל גם את `importd` וגם את `machined` ברמת המשתמש, מה שמאפשר ניהול תמונות בספרייה המקומית של המשתמש (`~/.local/state/machines/`).

חידושים אחרים

ממשק API מבוסס פרוטוקול Varlink קיבל שיפורים כדי לאפשר גישה להגדרות שירות ולבצע שיחות IPC כגון Reload() ו-Reexecute(). עבור מנהלי מערכת, הכללת המאפיין OOMKills בשירותים תהיה שימושית מאוד, מכיוון שהיא תאפשר להם לעקוב אחר מספר הפעמים שתהליך הופסק עקב חוסר זיכרון ישירות מכלי systemd.

לבסוף, תהליך אתחול המערכת הופך מודרני יותר עם הסרת התמיכה ב-TPM 1.2 ב-systemd-boot, תוך מיקוד כל מאמצי האבטחה בתקן TPM 2.0.

אם אתה מעוניין לדעת יותר על זה, אתה יכול להתייעץ עם פרטים בקישור הבא.