systemd 245 พร้อมใช้งานกับการใช้งานโฮมไดเร็กตอรี่แบบพกพา

หลังจากสามเดือนของการพัฒนา นำเสนอ การเปิดตัวผู้จัดการระบบ systemd 245. ในรีลีสใหม่ มีการเพิ่มส่วนประกอบใหม่ systemd-homed และ systemd-repart รวมถึงการสนับสนุนโปรไฟล์ผู้ใช้แบบพกพาในรูปแบบ JSON ความสามารถในการกำหนดเนมสเปซใน systemd-journald และเพิ่มการสนับสนุนกลไก "pidfd" . ออกแบบใหม่ทั้งหมด เว็บไซต์โครงการซึ่งรวบรวมเอกสารส่วนใหญ่ที่มีอยู่และเสนอโลโก้ใหม่

systemd 245 พร้อมใช้งานกับการใช้งานโฮมไดเร็กตอรี่แบบพกพา

หลัก การเปลี่ยนแปลง:

  • เพิ่มบริการ systemd-homedซึ่งจัดให้มีการจัดการโฮมไดเร็กทอรีแบบพกพา ซึ่งจัดส่งในรูปแบบของไฟล์รูปภาพที่เมาท์ ซึ่งเป็นข้อมูลที่ถูกเข้ารหัส Systemd-homed ช่วยให้คุณสร้างสภาพแวดล้อมในตัวเองสำหรับข้อมูลผู้ใช้ที่สามารถถ่ายโอนระหว่างระบบต่างๆ ได้โดยไม่ต้องกังวลเกี่ยวกับการซิงโครไนซ์ตัวระบุและการรักษาความลับ ข้อมูลรับรองผู้ใช้จะเชื่อมโยงกับโฮมไดเร็กตอรี่มากกว่าการตั้งค่าระบบ โดยจะใช้โปรไฟล์ในรูปแบบแทน /etc/passwd, /etc/group และ /etc/shadow JSON. สำหรับรายละเอียดเพิ่มเติม โปรดดู ประกาศครั้งสุดท้าย systemd-homed.
  • เพิ่มส่วนประกอบสหาย systemd-homed "userdb” (“systemd-userdb”) ซึ่งแปลบัญชี UNIX/glibc NSS เป็นบันทึก JSON และจัดเตรียม Varlink API แบบครบวงจรสำหรับการสืบค้นและวนซ้ำบันทึก โปรไฟล์ JSON ที่เชื่อมโยงกับโฮมไดเร็กตอรี่จะระบุพารามิเตอร์ที่จำเป็นสำหรับงานของผู้ใช้ รวมถึงชื่อผู้ใช้ แฮชรหัสผ่าน คีย์การเข้ารหัส โควต้า และทรัพยากรที่จัดเตรียมไว้ โปรไฟล์สามารถรับรองได้ด้วยลายเซ็นดิจิทัลที่จัดเก็บไว้ในโทเค็น Yubikey ภายนอก ในการจัดการโปรไฟล์จะมีการเสนอยูทิลิตี "userdbctl" มีการเพิ่มการรองรับโปรไฟล์ JSON ให้กับส่วนประกอบ systemd ต่างๆ รวมถึง systemd-logind และ pam-systemd ทำให้ผู้ใช้ไดเร็กทอรีแบบพกพาสามารถตรวจสอบสิทธิ์ เข้าสู่ระบบ ตั้งค่าตัวแปรสภาพแวดล้อม สร้างเซสชัน ตั้งค่าขีดจำกัด ฯลฯ ในอนาคต คาดว่าเฟรมเวิร์ก sssd จะสามารถสร้างโปรไฟล์ JSON พร้อมการตั้งค่าผู้ใช้ที่จัดเก็บไว้ใน LDAP ได้
  • มีการเพิ่มยูทิลิตี้ใหม่ “systemd-repart” ซึ่งออกแบบมาเพื่อแบ่งพาร์ติชันตารางพาร์ติชันดิสก์ในรูปแบบ GPT โครงสร้างพาร์ติชั่นถูกกำหนดในรูปแบบประกาศผ่านไฟล์ที่อธิบายว่าพาร์ติชั่นใดควรหรือสามารถมีอยู่ได้ ในการบู๊ตแต่ละครั้ง ตารางพาร์ติชั่นจริงจะถูกเปรียบเทียบกับไฟล์เหล่านี้ หลังจากนั้นพาร์ติชั่นที่หายไปจะถูกเพิ่ม หรือหากขนาดสัมพัทธ์หรือขนาดสัมบูรณ์ที่กำหนดไว้ในการตั้งค่าไม่ตรงกัน ขนาดของพาร์ติชั่นที่มีอยู่ก็จะเพิ่มขึ้น อนุญาตเฉพาะการเปลี่ยนแปลงส่วนเพิ่มเท่านั้น เช่น ไม่สามารถลบและลดขนาดได้ สามารถเพิ่มและขยายพาร์ติชันได้เท่านั้น
    ยูทิลิตี้นี้ได้รับการออกแบบให้เปิดใช้งานจาก initrd และตรวจจับดิสก์ที่มีพาร์ติชันรูทอยู่โดยอัตโนมัติ ซึ่งไม่ต้องการการกำหนดค่าเพิ่มเติม ยกเว้นไฟล์ที่มีคำจำกัดความของการเปลี่ยนแปลง

    ในทางปฏิบัติ systemd-repart อาจมีประโยชน์สำหรับอิมเมจระบบปฏิบัติการที่อาจจัดส่งในรูปแบบขั้นต่ำในตอนแรก และหลังจากการบูตครั้งแรกสามารถขยายเป็นขนาดของอุปกรณ์บล็อกที่มีอยู่หรือเสริมด้วยพาร์ติชันเพิ่มเติม (เช่น root พาร์ติชันสามารถขยายให้ครอบคลุมทั้งดิสก์หรือหลังจากการบูตครั้งแรกให้สร้างพาร์ติชันสลับหรือ /home) การใช้งานอีกอย่างคือการกำหนดค่าด้วยพาร์ติชั่นที่หมุนได้สองพาร์ติชั่น - เฉพาะพาร์ติชั่นแรกเท่านั้นที่อาจได้รับในตอนแรก และพาร์ติชั่นที่สองจะถูกสร้างขึ้นในการบูตครั้งแรก

  • ขณะนี้สามารถเปิดใช้ systemd-journald หลายอินสแตนซ์ได้ ซึ่งแต่ละอินสแตนซ์จะเก็บบันทึกไว้ในเนมสเปซของตัวเอง นอกเหนือจาก systemd-journald.service หลักแล้ว ไดเร็กทอรี .service ยังมีเทมเพลตสำหรับสร้างอินสแตนซ์เพิ่มเติมที่เชื่อมโยงกับเนมสเปซโดยใช้คำสั่ง "LogNamespace" เนมสเปซบันทึกแต่ละรายการให้บริการโดยกระบวนการพื้นหลังแยกต่างหากพร้อมชุดการตั้งค่าและขีดจำกัดของตัวเอง คุณสมบัติที่นำเสนออาจมีประโยชน์สำหรับการปรับสมดุลโหลดด้วยบันทึกจำนวนมากหรือสำหรับการปรับปรุงการแยกแอปพลิเคชัน เพิ่มตัวเลือก "--namespace" ใน Journalctl เพื่อจำกัดการสืบค้นเฉพาะ Namespace ที่ระบุเท่านั้น
  • Systemd-udevd และส่วนประกอบ systemd อื่นๆ ได้เพิ่มการรองรับกลไกในการกำหนดชื่อทางเลือกให้กับอินเทอร์เฟซเครือข่าย ทำให้สามารถใช้ชื่อหลายชื่อพร้อมกันสำหรับอินเทอร์เฟซเดียวได้ ชื่อสามารถมีความยาวได้สูงสุด 128 อักขระ (ก่อนหน้านี้ ชื่ออินเทอร์เฟซเครือข่ายถูกจำกัดไว้ที่ 16 อักขระ) ตามค่าเริ่มต้น ตอนนี้ systemd-udevd จะกำหนดอินเทอร์เฟซเครือข่ายแต่ละชื่อตัวแปรทั้งหมดที่สร้างโดยแผนการตั้งชื่อที่รองรับ ลักษณะการทำงานนี้สามารถเปลี่ยนแปลงได้ผ่านการตั้งค่า AlternativeName และ AlternativeNamesPolicy ใหม่ในไฟล์ .link systemd-nspawn ดำเนินการสร้างชื่อทางเลือกด้วยชื่อคอนเทนเนอร์แบบเต็มสำหรับลิงก์ veth ที่สร้างขึ้นในฝั่งโฮสต์
  • sd-event.h API เพิ่มการรองรับสำหรับระบบย่อยเคอร์เนล Linux "pidfd" เพื่อจัดการกับสถานการณ์การนำ PID มาใช้ซ้ำ (pidfd เชื่อมโยงกับกระบวนการเฉพาะและไม่เปลี่ยนแปลง ในขณะที่ PID สามารถเชื่อมโยงกับกระบวนการอื่นหลังจากกระบวนการปัจจุบันได้ ที่เกี่ยวข้องจะออกจาก PID นี้) ส่วนประกอบ systemd ทั้งหมดยกเว้น PID 1 ได้รับการแปลงให้ใช้ pidfds หากเคอร์เนลปัจจุบันรองรับระบบย่อย
  • systemd-logind ให้การตรวจสอบการเข้าถึงสำหรับการดำเนินการเปลี่ยนแปลงเทอร์มินัลเสมือนผ่าน PolicyKit ตามค่าเริ่มต้น การอนุญาตให้เปลี่ยนเทอร์มินัลที่ใช้งานอยู่จะมอบให้กับผู้ใช้ที่เริ่มต้นเซสชันบนเทอร์มินัลเสมือนในเครื่องอย่างน้อยหนึ่งครั้งเท่านั้น
  • เพื่อให้ง่ายต่อการสร้างอิมเมจ initrd ด้วย systemd ตัวจัดการ PID 1 จะตรวจพบว่ามีการใช้ initrd หรือไม่ และในกรณีนี้จะโหลด initrd.target แทน default.target โดยอัตโนมัติ ด้วยแนวทางนี้ อิมเมจระบบ initrd และ main สามารถแตกต่างกันได้เมื่อมีไฟล์ /etc/initrd-release เท่านั้น
  • เพิ่มพารามิเตอร์บรรทัดคำสั่งเคอร์เนลใหม่ - "systemd.cpu_affinity" ซึ่งเทียบเท่ากับตัวเลือก CPUAffinity ใน /etc/systemd/system.conf และอนุญาตให้คุณกำหนดค่า CPU affinity mask สำหรับ PID 1 และกระบวนการอื่น ๆ
  • เปิดใช้งานการโหลดฐานข้อมูล SELinux ใหม่พร้อมกับการรีสตาร์ท PID 1 ผ่านคำสั่งเช่น "systemctl daemon-reload"
  • เพิ่มการตั้งค่า “systemd.show-status=error” ให้กับตัวจัดการ PID 1 แล้ว เมื่อตั้งค่าแล้ว จะแสดงเฉพาะข้อความแสดงข้อผิดพลาดและความล่าช้าที่สำคัญระหว่างการโหลดบนคอนโซล
  • systemd-sysusers เพิ่มการสนับสนุนสำหรับการสร้างผู้ใช้ด้วยชื่อกลุ่มหลักที่แตกต่างจากชื่อผู้ใช้
  • systemd-growfs แนะนำการสนับสนุนสำหรับการขยายพาร์ติชัน XFS ผ่านตัวเลือกการเมานต์ x-systemd.growfs ใน /etc/fstab นอกเหนือจากการขยายพาร์ติชันที่รองรับก่อนหน้านี้ด้วย Ext4 และ Btrfs
  • เพิ่มตัวเลือก x-initrd.attach ใน /etc/crypttab เพื่อกำหนดพาร์ติชันที่เข้ารหัสซึ่งปลดล็อคแล้วในขั้นตอนเริ่มต้น
  • systemd-cryptsetup ได้เพิ่มการรองรับ (ตัวเลือก pkcs11-uri ใน /etc/crypttab) สำหรับการปลดล็อคพาร์ติชั่นที่เข้ารหัสโดยใช้สมาร์ทการ์ด PKCS#11 เช่น การแนบการเข้ารหัสพาร์ติชั่นกับ YubiKeys
  • ตัวเลือกการเมานต์ใหม่ "x-systemd.required-by" และ "x-systemd.wanted-by" ได้รับการเพิ่มใน /etc/fstab เพื่อกำหนดค่าหน่วยที่ชัดเจนซึ่งกำหนดการดำเนินการเมานต์ให้ถูกเรียกแทน local-fs.target และระยะไกล -fs .เป้าหมาย
  • มีการเพิ่มตัวเลือกแซนด์บ็อกซ์บริการใหม่ - ProtectClock ซึ่งจำกัดการเขียนไปยังนาฬิการะบบ (การเข้าถึงถูกบล็อกที่ระดับ /dev/rtc การเรียกของระบบ และการอนุญาต CAP_SYS_TIME/CAP_WAKE_ALARM)
  • เพื่อกำหนดคุณสมบัติ พาร์ติชันที่ค้นพบได้ และ systemd-gpt-auto-generator เพิ่มการตรวจจับพาร์ติชัน
    /var และ /var/tmp.

  • ใน “systemctl list-unit-files” เมื่อแสดงรายการหน่วย คอลัมน์ใหม่ปรากฏขึ้นซึ่งสะท้อนถึงสถานะเปิดใช้งานที่นำเสนอในการตั้งค่าล่วงหน้าของผู้ผลิตสำหรับหน่วยประเภทนี้
  • เมื่อติดตั้งตัวเลือก “—ที่มีการพึ่งพา” ลงใน “systemctl” แล้ว คำสั่งเช่น “สถานะ systemctl” และ “systemctl cat” จะแสดงไม่เพียงแต่หน่วยที่เกี่ยวข้องทั้งหมดเท่านั้น แต่ยังรวมถึงหน่วยที่พวกมันพึ่งพาด้วย
  • ใน systemd-networkd การกำหนดค่า qdisc ได้เพิ่มความสามารถในการกำหนดค่าพารามิเตอร์ TBF (Token Bucket Filter), SFQ (Stochastic Fairness Queuing), CoDel (Controlled-Delay Active Queue Management) และ FQ (Fair Queue)
  • systemd-networkd เพิ่มการสนับสนุนสำหรับอุปกรณ์เครือข่าย IFB (บล็อกการทำงานระดับกลาง).
  • Systemd-networkd ใช้พารามิเตอร์ MultiPathRoute ในส่วน [เส้นทาง] เพื่อกำหนดค่าเส้นทางแบบหลายเส้นทาง
  • ใน systemd-networkd สำหรับไคลเอนต์ DHCPv4 ตัวเลือก SendDecline ได้ถูกเพิ่มเข้าไป เมื่อระบุ หลังจากได้รับการตอบกลับ DHCP พร้อมที่อยู่ จะมีการตรวจสอบที่อยู่ซ้ำ และหากตรวจพบความขัดแย้งของที่อยู่ ที่อยู่ที่ออกจะถูกปฏิเสธ ตัวเลือก RouteMTUBytes ได้รับการเพิ่มไปยังไคลเอนต์ DHCPv4 ซึ่งทำให้คุณสามารถกำหนดขนาด MTU สำหรับเส้นทางที่สร้างจากการเชื่อมโยงที่อยู่ IP (สัญญาเช่า)
  • การตั้งค่า PrefixRoute ในส่วน [ที่อยู่] ของไฟล์ .network เลิกใช้แล้ว มันถูกแทนที่ด้วยการตั้งค่า “AddPrefixRoute” ซึ่งมีความหมายตรงกันข้าม
  • ในไฟล์ .network มีการเพิ่มการรองรับค่าใหม่ “_dhcp” ให้กับการตั้งค่าเกตเวย์ในส่วน “[เส้นทาง]” เมื่อตั้งค่าแล้ว เส้นทางแบบคงที่จะถูกเลือกตามเกตเวย์ที่กำหนดค่าผ่าน DHCP
  • การตั้งค่าปรากฏในไฟล์ .network ในส่วน "[RoutingPolicyRule]"
    ผู้ใช้และ SuppressPrefixLength เพื่อระบุเส้นทางต้นทางตามช่วง UID และขนาดคำนำหน้า

  • ใน networkctl คำสั่ง "สถานะ" ให้ความสามารถในการแสดงบันทึกที่เกี่ยวข้องกับแต่ละอินเทอร์เฟซเครือข่าย
  • systemd-networkd-wait-online เพิ่มการสนับสนุนสำหรับการตั้งเวลาสูงสุดในการรอให้อินเทอร์เฟซใช้งานได้และรอให้อินเทอร์เฟซหยุดทำงาน
  • หยุดการประมวลผลไฟล์ .link และ .network โดยมีส่วนว่างหรือใส่ความคิดเห็นไว้ “[Match]”
  • ในไฟล์ .link และ .network ในส่วน “[Match]” มีการเพิ่มการตั้งค่า “PermanentMACAddress” เพื่อตรวจสอบที่อยู่ MAC ถาวรของอุปกรณ์ในกรณีที่ใช้ MAC แบบสุ่มที่สร้างขึ้น
  • ส่วน "[TrafficControlQueueingDiscipline]" ในไฟล์ .network ถูกเปลี่ยนชื่อเป็น "[NetworkEmulator]" และคำนำหน้า "NetworkEmulator" ได้ถูกลบออกจากชื่อของการตั้งค่าที่เกี่ยวข้อง
  • systemd-resolved สำหรับ DNS-over-TLS เพิ่มการรองรับสำหรับการตรวจสอบ SNI

ที่มา: opennet.ru

เพิ่มความคิดเห็น