ผู้จัดการระบบ systemd รีลีส 246

หลังจากห้าเดือนของการพัฒนา นำเสนอ การเปิดตัวผู้จัดการระบบ systemd 246. รุ่นใหม่ประกอบด้วยการรองรับหน่วยแช่แข็ง ความสามารถในการตรวจสอบอิมเมจของรูทดิสก์โดยใช้ลายเซ็นดิจิทัล รองรับการบีบอัดบันทึกและคอร์ดัมพ์โดยใช้อัลกอริธึม ZSTD ความสามารถในการปลดล็อคโฮมไดเร็กทอรีแบบพกพาโดยใช้โทเค็น FIDO2 รองรับการปลดล็อค Microsoft BitLocker พาร์ติชันผ่าน /etc/ crypttab BlackList ถูกเปลี่ยนชื่อเป็น DenyList

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

  • เพิ่มการรองรับสำหรับตัวควบคุมทรัพยากรช่องแช่แข็งตาม cgroups v2 ซึ่งคุณสามารถหยุดกระบวนการและเพิ่มพื้นที่ว่างทรัพยากรบางส่วน (CPU, I/O และแม้กระทั่งหน่วยความจำ) ชั่วคราวเพื่อทำงานอื่น ๆ การแช่แข็งและการละลายน้ำแข็งของยูนิตควบคุมโดยใช้คำสั่ง “systemctl freeze” ใหม่หรือผ่าน D-Bus
  • เพิ่มการรองรับสำหรับการตรวจสอบอิมเมจดิสก์รูทโดยใช้ลายเซ็นดิจิทัล การตรวจสอบจะดำเนินการโดยใช้การตั้งค่าใหม่ในหน่วยบริการ: RootHash (แฮชรูทสำหรับตรวจสอบดิสก์อิมเมจที่ระบุผ่านตัวเลือก RootImage) และ RootHashSignature (ลายเซ็นดิจิทัลในรูปแบบ PKCS#7 สำหรับแฮชรูท)
  • ตัวจัดการ PID 1 ใช้ความสามารถในการโหลดกฎ AppArmor ที่คอมไพล์แล้วโดยอัตโนมัติ (/etc/apparmor/earlypolicy) ในขั้นตอนการบูตครั้งแรก
  • เพิ่มการตั้งค่าไฟล์หน่วยใหม่แล้ว: ConditionPathIsEncrypted และ AssertPathIsEncrypted เพื่อตรวจสอบตำแหน่งของเส้นทางที่ระบุบนอุปกรณ์บล็อกที่ใช้การเข้ารหัส (dm-crypt/LUKS), ConditionEnvironment และ AssertEnvironment เพื่อตรวจสอบตัวแปรสภาพแวดล้อม (เช่น ที่ตั้งค่าโดย PAM หรือ เมื่อตั้งภาชนะ)
  • สำหรับหน่วย *.mount การตั้งค่า ReadWriteOnly ได้ถูกนำมาใช้ ซึ่งห้ามมิให้ติดตั้งพาร์ติชันในโหมดอ่านอย่างเดียว หากไม่สามารถเมานต์เพื่ออ่านและเขียนได้ ใน /etc/fstab โหมดนี้ได้รับการกำหนดค่าโดยใช้ตัวเลือก “x-systemd.rw-only”
  • สำหรับหน่วย *.socket การตั้งค่า PassPacketInfo ได้ถูกเพิ่ม ซึ่งช่วยให้เคอร์เนลสามารถเพิ่มข้อมูลเมตาเพิ่มเติมสำหรับแต่ละแพ็กเก็ตที่อ่านจากซ็อกเก็ต (เปิดใช้งานโหมด IP_PKTINFO, IPV6_RECVPKTINFO และ NETLINK_PKTINFO สำหรับซ็อกเก็ต)
  • สำหรับบริการ (*.หน่วยบริการ) จะมีการนำเสนอการตั้งค่า CoredumpFilter (กำหนดส่วนหน่วยความจำที่ควรรวมอยู่ในคอร์ดัมพ์) และ
    TimeoutStartFailureMode/TimeoutStopFailureMode (กำหนดลักษณะการทำงาน (SIGTERM, SIGABRT หรือ SIGKILL) เมื่อเกิดการหมดเวลาเมื่อเริ่มหรือหยุดบริการ)

  • ตัวเลือกส่วนใหญ่รองรับค่าเลขฐานสิบหกที่ระบุโดยใช้คำนำหน้า "0x"
  • ในพารามิเตอร์บรรทัดคำสั่งและไฟล์การกำหนดค่าต่างๆ ที่เกี่ยวข้องกับการตั้งค่าคีย์หรือใบรับรอง คุณสามารถระบุเส้นทางไปยังซ็อกเก็ตยูนิกซ์ (AF_UNIX) สำหรับการถ่ายโอนคีย์และใบรับรองผ่านการเรียกไปยังบริการ IPC เมื่อไม่ต้องการวางใบรับรองบนดิสก์ที่ไม่ได้เข้ารหัส พื้นที่จัดเก็บ.
  • เพิ่มการรองรับตัวระบุใหม่หกตัวที่สามารถใช้ในหน่วย tmpfiles.d/, sysusers.d/ และไฟล์การกำหนดค่าอื่นๆ: %a สำหรับการแทนที่สถาปัตยกรรมปัจจุบัน %o/%w/%B/%W สำหรับการแทนที่ฟิลด์ด้วย ตัวระบุจาก /etc/os-release และ %l สำหรับการทดแทนชื่อโฮสต์แบบสั้น
  • ไฟล์หน่วยไม่รองรับไวยากรณ์ ".include" ซึ่งเลิกใช้แล้วเมื่อ 6 ปีที่แล้ว
  • การตั้งค่า StandardError และ StandardOutput ไม่รองรับค่า “syslog” และ “syslog-console” อีกต่อไป ซึ่งจะถูกแปลงเป็น “journal” และ “journal+console” โดยอัตโนมัติ
  • สำหรับจุดเมานท์ที่ใช้ tmpfs ที่สร้างขึ้นโดยอัตโนมัติ (/tmp, /run, /dev/shm ฯลฯ) จะมีการกำหนดขีดจำกัดขนาดและจำนวนของ inodes ซึ่งสอดคล้องกับ 50% ของขนาด RAM สำหรับ /tmp และ /dev/ shm และ RAM 10% สำหรับคนอื่นๆ
  • เพิ่มตัวเลือกบรรทัดคำสั่งเคอร์เนลใหม่: systemd.hostname เพื่อตั้งชื่อโฮสต์ที่ขั้นตอนการบูตเริ่มต้น udev.blockdev_read_only เพื่อจำกัดอุปกรณ์บล็อกทั้งหมดที่เกี่ยวข้องกับฟิสิคัลไดรฟ์ให้เป็นโหมดอ่านอย่างเดียว (คุณสามารถใช้คำสั่ง "blockdev --setrw" เพื่อ เลือกยกเลิก), systemd .swap เพื่อปิดใช้งานการเปิดใช้งานอัตโนมัติของพาร์ติชัน swap, systemd.clock-usec เพื่อตั้งค่านาฬิการะบบเป็นไมโครวินาที, systemd.condition-needs-update และ systemd.condition-first-boot เพื่อแทนที่ ConditionNeedsUpdate และ ConditionFirstBoot เช็ค
  • ตามค่าเริ่มต้น sysctl fs.suid_dumpable จะถูกตั้งค่าเป็น 2 (“suidsafe”) ซึ่งอนุญาตให้บันทึกคอร์ดัมพ์สำหรับกระบวนการด้วยแฟล็ก suid
  • ไฟล์ /usr/lib/udev/hwdb.d/60-autosuspend.hwdb ถูกยืมไปยังฐานข้อมูลฮาร์ดแวร์จาก ChromiumOS ซึ่งรวมถึงข้อมูลเกี่ยวกับอุปกรณ์ PCI และ USB ที่รองรับโหมดสลีปอัตโนมัติ
  • เพิ่มการตั้งค่า ManageForeignRoutes ใน networkd.conf เมื่อเปิดใช้งาน systemd-networkd จะเริ่มจัดการเส้นทางทั้งหมดที่กำหนดค่าโดยยูทิลิตี้อื่น
  • เพิ่มส่วน "[SR-IOV]" ลงในไฟล์ .network สำหรับการกำหนดค่าอุปกรณ์เครือข่ายที่รองรับ SR-IOV (Single Root I/O Virtualization)
  • ใน systemd-networkd การตั้งค่า IPv4AcceptLocal ได้ถูกเพิ่มในส่วน “[เครือข่าย]” เพื่ออนุญาตให้รับแพ็กเก็ตที่มาถึงด้วยที่อยู่ต้นทางในเครื่องบนอินเทอร์เฟซเครือข่าย
  • systemd-networkd ได้เพิ่มความสามารถในการกำหนดค่าวินัยการจัดลำดับความสำคัญการรับส่งข้อมูล HTB ผ่าน [HierarchyTokenBucket] และ
    [HierarchyTokenBucketClass], "pfifo" ผ่าน [PFIFO], "GRED" ผ่าน [GenericRandomEarlyDetection], "SFB" ผ่าน [StochasticFairBlue], "cake"
    ผ่าน [CAKE], "PIE" ผ่าน [PIE], "DRR" ผ่าน [DeficitRoundRobinScheduler] และ
    [DeficitRoundRobinSchedulerClass], "BFIFO" ผ่าน [BFIFO],
    "PFIFOHeadDrop" ผ่าน [PFIFOHeadDrop], "PFIFOFast" ผ่าน [PFIFOFast], "HHF"
    ผ่าน [HeavyHitterFilter], "ETS" ผ่าน [EnhancedTransmissionSelection],
    "QFQ" ผ่าน [QuickFairQueueing] และ [QuickFairQueueingClass]

  • ใน systemd-networkd มีการเพิ่มการตั้งค่า UseGateway ในส่วน [DHCPv4] เพื่อปิดการใช้งานข้อมูลเกตเวย์ที่ได้รับผ่าน DHCP
  • ใน systemd-networkd ในส่วน [DHCPv4] และ [DHCPServer] มีการเพิ่มการตั้งค่า SendVendorOption สำหรับการติดตั้งและประมวลผลตัวเลือกผู้จำหน่ายเพิ่มเติม
  • systemd-networkd ใช้ชุดตัวเลือก EmitPOP3/POP3, EmitSMTP/SMTP และ EmitLPR/LPR ชุดใหม่ในส่วน [DHCPServer] เพื่อเพิ่มข้อมูลเกี่ยวกับเซิร์ฟเวอร์ POP3, SMTP และ LPR
  • ใน systemd-networkd ในไฟล์ .netdev ในส่วน [Bridge] มีการเพิ่มการตั้งค่า VLANProtocol เพื่อเลือกโปรโตคอล VLAN ที่จะใช้
  • ใน systemd-networkd ในไฟล์ .network ในส่วน [ลิงก์] การตั้งค่ากลุ่มจะถูกนำมาใช้เพื่อจัดการกลุ่มลิงก์
  • การตั้งค่า BlackList ได้รับการเปลี่ยนชื่อเป็น DenyList (รักษาการจัดการชื่อเก่าไว้เพื่อความเข้ากันได้แบบย้อนหลัง)
  • Systemd-networkd ได้เพิ่มการตั้งค่าส่วนใหญ่ที่เกี่ยวข้องกับ IPv6 และ DHCPv6
  • เพิ่มคำสั่ง "forcerenew" ใน networkctl เพื่อบังคับให้อัปเดตการเชื่อมโยงที่อยู่ทั้งหมด (เช่า)
  • ในการกำหนดค่า DNS ที่แก้ไขโดยระบบ ทำให้สามารถระบุหมายเลขพอร์ตและชื่อโฮสต์สำหรับการตรวจสอบใบรับรอง DNS-over-TLS ได้ การใช้งาน DNS-over-TLS ได้เพิ่มการรองรับสำหรับการตรวจสอบ SNI
  • ขณะนี้ Systemd-resolved มีความสามารถในการกำหนดค่าการเปลี่ยนเส้นทางของชื่อ DNS ของป้ายชื่อเดียว (ป้ายชื่อเดียวจากชื่อโฮสต์เดียว)
  • systemd-journald ให้การสนับสนุนการใช้อัลกอริทึม zstd เพื่อบีบอัดฟิลด์ขนาดใหญ่ในเจอร์นัล มีการทำงานเพื่อป้องกันการชนกันในตารางแฮชที่ใช้ในวารสาร
  • URL ที่สามารถคลิกได้พร้อมลิงก์ไปยังเอกสารได้ถูกเพิ่มลงใน Journalctl เมื่อแสดงข้อความบันทึก
  • เพิ่มการตั้งค่าการตรวจสอบใน Journald.conf เพื่อควบคุมว่าการตรวจสอบถูกเปิดใช้งานในระหว่างการเริ่มต้น systemd-journald หรือไม่
  • ขณะนี้ Systemd-coredump มีความสามารถในการบีบอัด core dumps โดยใช้อัลกอริทึม zstd
  • เพิ่มการตั้งค่า UUID ให้กับ systemd-repart เพื่อกำหนด UUID ให้กับพาร์ติชันที่สร้างขึ้น
  • บริการ systemd-homed ซึ่งให้การจัดการไดเร็กทอรีโฮมแบบพกพาได้เพิ่มความสามารถในการปลดล็อกโฮมไดเร็กทอรีโดยใช้โทเค็น FIDO2 แบ็กเอนด์การเข้ารหัสพาร์ติชัน LUKS ได้เพิ่มการรองรับสำหรับการส่งคืนบล็อกระบบไฟล์ว่างโดยอัตโนมัติเมื่อเซสชันสิ้นสุดลง เพิ่มการป้องกันการเข้ารหัสข้อมูลซ้ำซ้อน หากตรวจพบว่าพาร์ติชัน /home บนระบบได้รับการเข้ารหัสแล้ว
  • เพิ่มการตั้งค่าใน /etc/crypttab: “keyfile-erase” เพื่อลบคีย์หลังการใช้งานและ “try-empty-password” เพื่อพยายามปลดล็อกพาร์ติชันด้วยรหัสผ่านที่ว่างเปล่าก่อนที่จะแจ้งให้ผู้ใช้ใส่รหัสผ่าน (มีประโยชน์สำหรับการติดตั้งภาพที่เข้ารหัส ด้วยรหัสผ่านที่กำหนดหลังจากการบูตครั้งแรก ไม่ใช่ระหว่างการติดตั้ง)
  • systemd-cryptsetup เพิ่มการสนับสนุนสำหรับการปลดล็อกพาร์ติชัน Microsoft BitLocker ในเวลาบูตโดยใช้ /etc/crypttab เพิ่มความสามารถในการอ่านด้วย
    ปุ่มสำหรับการปลดล็อคพาร์ติชั่นโดยอัตโนมัติจากไฟล์ /etc/cryptsetup-keys.d/ .key และ /run/cryptsetup-keys.d/ .สำคัญ.

  • เพิ่ม systemd-xdg-autostart-generator เพื่อสร้างไฟล์หน่วยจากไฟล์ .desktop autostart
  • เพิ่มคำสั่ง "reboot-to-firmware" ใน "bootctl"
  • เพิ่มตัวเลือกให้กับ systemd-firstboot: "--image" เพื่อระบุดิสก์อิมเมจที่จะบูต "--kernel-command-line" เพื่อเริ่มต้นไฟล์ /etc/kernel/cmdline "--root-password-hashed" ถึง ระบุแฮชรหัสผ่านรูทและ "--delete-root-password" เพื่อลบรหัสผ่านรูท

ที่มา: opennet.ru

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