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

หลังจากหกเดือนของการพัฒนา มีการนำเสนอการเปิดตัวตัวจัดการระบบ systemd 257 การเปลี่ยนแปลงที่สำคัญ: ยูทิลิตี้ใหม่ systemd-sbsign และ systemd-keyutil, รองรับ MPTCP เมื่อเปิดใช้งานผ่านซ็อกเก็ต, การสนับสนุนเบื้องต้นสำหรับการสร้างด้วยไลบรารี Musl C, ยูทิลิตี้ updatectl สำหรับจัดการการติดตั้งการอัปเดตผ่าน systemd-sysupdate ความสามารถในการเปิดบริการในเนมสเปซ PID ที่แยกจากกัน การป้องกันการลบไฟล์โดยไม่ตั้งใจเมื่อใช้ "systemd-tmpfiles —purge"

ท่ามกลางการเปลี่ยนแปลงในรุ่นใหม่:

  • มีการเพิ่มยูทิลิตี้ใหม่ชื่อ systemd-sbsign สำหรับลงลายเซ็นดิจิทัลให้กับไฟล์ปฏิบัติการในรูปแบบ PE (Portable Executable) ซึ่งมีไว้สำหรับใช้งานเมื่อบูตในโหมด EFI Secure Boot สามารถใช้เอนจินและโปรไวเดอร์ที่จัดหาโดยไลบรารี OpenSSL ในการสร้างลายเซ็นได้ systemd-sbsign สามารถใช้เป็นทางเลือกแทนแอปพลิเคชัน sbsigntool และ pesign ในยูทิลิตี้ ukify เมื่อสร้างอิมเมจเคอร์เนลสากล (UKIs) ซึ่งรวมตัวโหลดบูต UEFI (UEFI boot stub) และอิมเมจเคอร์เนลไว้ในไฟล์เดียว Linux และสภาพแวดล้อมระบบ initrd ถูกโหลดเข้าสู่หน่วยความจำ
  • มีการเพิ่มยูทิลิตี้ใหม่ systemd-keyutil ซึ่งใช้การดำเนินการต่างๆ กับคีย์ส่วนตัวและใบรับรอง X.509 ตัวอย่างเช่น สามารถใช้ systemd-keyutil เพื่อทดสอบความสามารถในการโหลดคีย์ส่วนตัวและใบรับรอง และแยกคีย์สาธารณะออกมาในรูปแบบ PEM
  • ในหน่วย ".socket" ที่ใช้เพื่อให้แน่ใจว่ากลไกการเปิดใช้งานซ็อกเก็ต (การเริ่มต้นกระบวนการเมื่อพยายามสร้างการเชื่อมต่อเครือข่าย) ทำงานได้อย่างถูกต้องนั้น มีการใช้งาน MPTCP (Multipath TCP) ซึ่งเป็นส่วนขยายของโปรโตคอล TCP สำหรับการจัดการการทำงานของการเชื่อมต่อ TCP โดยการส่งแพ็กเก็ตพร้อมกันผ่านหลายเส้นทางผ่านอินเทอร์เฟซเครือข่ายต่างๆ ที่เชื่อมต่อกับอุปกรณ์ที่แตกต่างกัน ที่อยู่ IP.
  • รวมถึงการเปลี่ยนแปลงที่จำเป็นในการสร้างโดยใช้ไลบรารี Musl C มาตรฐาน
  • ส่วนประกอบต่างๆ ของ systemd ที่แสดงตัวบ่งชี้ความคืบหน้า (เช่น systemd-repart, systemd-sysupdate/updatectl และ importctl) ตอนนี้รองรับการใช้ลำดับ ANSI เพื่อสร้างภาพเคลื่อนไหวในการแสดงความคืบหน้าแล้ว ปัจจุบันลำดับดังกล่าวรองรับเฉพาะใน Windows เทอร์มินัล (คาดว่าในอนาคตฟีเจอร์ที่คล้ายกันนี้จะถูกถ่ายโอนไปยังโปรแกรมจำลองเทอร์มินัลด้วย) Linux).
  • ความสามารถของคอมโพเนนต์ systemd-sysupdate ได้รับการขยาย ใช้ในการตรวจจับ ดาวน์โหลด และติดตั้งการอัปเดตโดยอัตโนมัติโดยใช้กลไกแบบอะตอมมิกสำหรับการแทนที่พาร์ติชัน ไฟล์ หรือไดเร็กทอรี (ใช้พาร์ติชัน/ไฟล์/ไดเร็กทอรีอิสระสองตัว ซึ่งหนึ่งในนั้นประกอบด้วยการทำงานปัจจุบัน และอีกอันจะติดตั้งอันถัดไป) อัปเดต หลังจากนั้นส่วน/ไฟล์/ไดเร็กทอรีจะถูกสลับ) ในทางปฏิบัติ systemd-sysupdate ถูกใช้อยู่แล้วใน GNOME OS

    นอกเหนือจากกระบวนการ systemd-sysupdate แล้ว ยังมีการเพิ่มบริการที่มีชื่อเดียวกันซึ่งช่วยให้ D-Bus สามารถใช้ในการจัดการการอัปเดตระบบโดยผู้ใช้ที่ไม่มีสิทธิพิเศษ ในการจัดการบริการ จึงมียูทิลิตี้ updatectl ใหม่รวมอยู่ด้วย เพิ่มแฟล็ก "--ออฟไลน์" ใน systemd-sysupdate เพื่อปิดใช้งานการดาวน์โหลดข้อมูลเมตาผ่านเครือข่าย และใช้เฉพาะเวอร์ชันที่ดาวน์โหลดไปยังระบบโลคัลแล้วเท่านั้น เพิ่มการรองรับเอาต์พุตในรูปแบบ JSON สำหรับคำสั่งทั้งหมด

  • คุณสมบัติใหม่ “PrivatePIDs” ได้รับการปรับใช้สำหรับบริการ ซึ่งคุณสามารถจัดระเบียบการเปิดตัวกระบวนการด้วย PID 1 (กระบวนการเริ่มต้น) ในพื้นที่ตัวระบุกระบวนการที่แยกต่างหาก (เนมสเปซ PID) ในสภาพแวดล้อมที่สร้างขึ้นสำหรับกระบวนการที่เปิดใช้งาน เฉพาะกระบวนการจากเนมสเปซที่สร้างขึ้นสำหรับกระบวนการเท่านั้นที่จะมองเห็นได้
  • เพิ่มการรองรับการจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ให้กับกฎ udev (เช่น 'ATTR{foo}==i»abcd»') เมื่อใช้ udev เป็นไปได้ที่จะให้ผู้ใช้ในพื้นที่ที่ไม่มีสิทธิ์เข้าถึง (“uaccess”) ไปยังอุปกรณ์ /dev/udmabuf ซึ่งจำเป็นสำหรับการทำงานกับกล้อง IPMI ผ่าน libCamera udev ให้การจดจำกระเป๋าสตางค์เข้ารหัสฮาร์ดแวร์ต่างๆ ด้วยอินเทอร์เฟซ USB และการตั้งค่าคุณสมบัติ ID_HARDWARE_WALLET สำหรับกระเป๋าเหล่านั้น ซึ่งช่วยให้คุณสามารถใช้โหมด “uaccess” กับกระเป๋าเหล่านั้นเพื่อให้ผู้ใช้ที่ไม่มีสิทธิพิเศษเข้าถึงได้
  • เพิ่มฟิลด์ใหม่ RELEASE_TYPE, EXPERIMENT และ EXPERIMENT_URL ลงในไฟล์ /etc/os-release แล้ว "RELEASE_TYPE" สามารถใช้ค่า "ทดลอง", "การพัฒนา", "เสถียร" และ "lts" เพื่อแยกเวอร์ชันเสถียรออกจากเวอร์ชันการพัฒนาและรุ่นทดลอง พารามิเตอร์ EXPERIMENT และ EXPERIMENT_URL มีวัตถุประสงค์เพื่ออธิบายสาระสำคัญของโครงสร้างการทดลอง
  • ยูทิลิตี้ run0 ซึ่งพัฒนาขึ้นมาทดแทนโปรแกรม sudo ได้เพิ่มตัวเลือก “--shell-prompt-prefix” ซึ่งระบุสตริงคำนำหน้าสำหรับพรอมต์เชลล์คำสั่ง ตามค่าเริ่มต้น อีโมจิ “🦸” จะแสดงเป็นคำนำหน้าเพื่อเน้นเซสชันที่ยกระดับด้วยสายตา
  • ใน systemd-tmpfiles เพื่อหลีกเลี่ยงการลบไฟล์ผิดโดยไม่ตั้งใจ ตัวเลือก "--purge" จะใช้เฉพาะกับการตั้งค่าใน tmpfiles.d/ ที่มีการตั้งค่าสถานะ "$" ไว้อย่างชัดเจนเท่านั้น ขณะนี้การดำเนินการ "--purge" จำเป็นต้องระบุไฟล์อย่างน้อยหนึ่งไฟล์จากไดเร็กทอรี tmpfiles.d/ สำหรับสตริงที่มีประเภท 'L' จะมีการเพิ่มแฟล็ก '?' เมื่อระบุ ลิงก์สัญลักษณ์จะถูกสร้างขึ้นเฉพาะเมื่อมีไฟล์เป้าหมายอยู่
  • ในตัวจัดการบริการและยูทิลิตี้ที่เกี่ยวข้อง รหัสติดตามกระบวนการยังคงถูกแปลงไปใช้ PIDFD แทน PID PIDFD เชื่อมโยงกับกระบวนการเฉพาะและไม่มีการเปลี่ยนแปลง ในขณะที่ PID สามารถเชื่อมโยงกับกระบวนการอื่นได้หลังจากที่กระบวนการปัจจุบันที่เกี่ยวข้องกับ PID นั้นสิ้นสุดลง
  • สำหรับบริการ ตอนนี้คุณสามารถระบุค่า “debug” ในพารามิเตอร์ “RestartMode” ซึ่งบริการที่ล้มเหลวจะถูกรีสตาร์ทโดยเปิดใช้งานโหมดแก้ไขข้อบกพร่อง (ตั้งค่าตัวแปรสภาพแวดล้อม DEBUG_INVOCATION=1) และค่า LogLevelMax จะเป็น ยกระดับเป็นระดับการแก้ไขข้อบกพร่องชั่วคราว
  • ตัวจัดการ PID 1 มีความสามารถในการโหลดกฎสำหรับโมดูล IPE (Integrity Policy Enforcement) LSM ซึ่งกำหนดนโยบายความสมบูรณ์สำหรับทั้งระบบ (การดำเนินการใดบ้างที่ได้รับอนุญาต และวิธีตรวจสอบความถูกต้องของส่วนประกอบ)
  • ตัวเลือก "DeferReactivation" ได้ถูกเพิ่มลงในไฟล์หน่วย ".timer" ซึ่งช่วยให้คุณสามารถข้ามการเปิดใช้งานตัวจับเวลาครั้งถัดไปได้ หากบริการยังไม่เสร็จสิ้นการดำเนินการนับตั้งแต่การเปิดใช้งานครั้งล่าสุด
  • ในพารามิเตอร์ไฟล์หน่วย PrivateUsers ตอนนี้คุณสามารถระบุค่า "ข้อมูลประจำตัว" เพื่อเปิดใช้งานการแมป ID ผู้ใช้เมื่อสร้างเนมสเปซผู้ใช้
  • เพิ่มการรองรับค่า “disconnected” ให้กับพารามิเตอร์ไฟล์หน่วย PrivateTmp ซึ่งจะใช้อินสแตนซ์ tmpfs แยกต่างหากสำหรับไดเร็กทอรี /tmp/ และ /var/tmp/
  • มีการเพิ่มการรองรับโหมด "ส่วนตัว" และ "เข้มงวด" ใหม่ให้กับพารามิเตอร์ไฟล์หน่วย ProtectControlGroups เมื่อตั้งค่า เนมสเปซ cgroup ใหม่สำหรับบริการและ cgroupfs จะถูกเมาท์ เมื่อตั้งค่าตัวเลือก "เข้มงวด" cgroupfs จะถูกเมาท์ในโหมดอ่านอย่างเดียว
  • พารามิเตอร์ StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory และ ConfigurationDirectory ให้ความสามารถในการใช้แฟล็ก ':ro' เพื่อจำกัดการเข้าถึงไดเร็กทอรีที่เกี่ยวข้องในโหมดอ่านอย่างเดียว
  • เพิ่มการรองรับค่า “เฟิร์มแวร์” ให้กับพารามิเตอร์บรรทัดคำสั่งเคอร์เนล “systemd.machine_id” ซึ่งตัวระบุระบบ (ID เครื่อง) จะถูกคำนวณตาม UUID จาก SMBIOS/DeviceTree
  • เพิ่มการรองรับการเรียกใช้ระบบ mseal(), listmount() และ statmount() ที่เพิ่มเข้ามาในเคอร์เนลเวอร์ชันล่าสุด Linux.
  • ขณะนี้ยูทิลิตี้ solvectl, timedatectl และ systemd-inhibit รองรับการอนุญาตแบบโต้ตอบโดยใช้ Polkit
  • ยูทิลิตี้ systemctl ได้เพิ่มความสามารถในการใช้แฟล็ก "--now" ในคำสั่ง "reenable"
  • เพิ่มตัวเลือก "--json" ให้กับยูทิลิตี้ systemd-mount สำหรับเอาต์พุตในรูปแบบ JSON (ตัวอย่างเช่น เมื่อระบุพร้อมกับ "--list-devices" รายการอุปกรณ์จะถูกส่งออกในรูปแบบ JSON)
  • เพิ่มตัวเลือก "-l" และ "--full" ให้กับยูทิลิตี้ "localectl" เพื่อปิดการตัดเส้นยาวระหว่างเอาท์พุต
  • เพิ่มตัวเลือก HibernateOnACPower ลงใน sleep.conf ซึ่งช่วยให้คุณสามารถชะลอการเปลี่ยนเป็นโหมดสลีปได้จนกว่าอุปกรณ์จะตัดการเชื่อมต่อจากแหล่งพลังงานที่อยู่กับที่
  • ใน systemd-sysusers มีการเพิ่มการรองรับตัวแก้ไข "!" ในบรรทัด "u" ซึ่งคุณสามารถสร้างบัญชีผู้ใช้ที่ถูกล็อคได้อย่างสมบูรณ์ (ก่อนหน้านี้มีการใช้การตั้งรหัสผ่านที่ไม่ถูกต้องเพื่อบล็อกผู้ใช้ซึ่งตัวอย่างเช่น ไม่ได้นำไปสู่การบล็อกระหว่างการรับรองความถูกต้องของคีย์ใน SSH)
  • Systemd-coredump เพิ่มตัวเลือก "EnterNamespace" ที่อนุญาตให้เข้าถึงพื้นที่จุดเชื่อมต่อของกระบวนการที่ล้มเหลวเพื่อรับสัญลักษณ์การดีบัก ในทางปฏิบัติ ตัวเลือกนี้มีประโยชน์สำหรับการจัดระเบียบ backtrace ของไฟล์หลักจากแอปพลิเคชันที่ทำงานในคอนเทนเนอร์ที่แยกออกจากกัน
  • systemd-logind รวมการประมวลผลชุดค่าผสม Ctrl-Alt-Shift-Esc เพื่อส่งสัญญาณ org.freedesktop.login1.SecureAttentionKey ไปยังส่วนประกอบสภาพแวดล้อมผู้ใช้พร้อมคำขอให้แสดงกล่องโต้ตอบการเข้าสู่ระบบที่ปลอดภัย ใช้การตั้งค่า “DesignatedMaintenanceTime” เพื่อกำหนดเวลาการทำงานให้เสร็จสิ้นตามเวลาที่กำหนดโดยอัตโนมัติ โดยการเปรียบเทียบกับการรองรับอุปกรณ์ DRM และ evdev มีการเพิ่มการรองรับสำหรับการกำหนดค่าการเข้าถึงสำหรับผู้ใช้ที่ไม่มีสิทธิ์เพื่อซ่อนอุปกรณ์ (ตัวควบคุมเกมและจอยสติ๊ก)
  • systemd-machined รองรับการล็อกอินไคลเอ็นต์ที่ไม่ได้รับสิทธิ์พิเศษแล้ว เครื่องเสมือน และคอนเทนเนอร์ การเข้าถึงฟังก์ชันการทำงานของ systemd-machined นั้นมีให้ผ่านทาง API Varlink นอกเหนือจาก D-Bus
  • มีการเพิ่มส่วนใหม่ "[IPv6AddressLabel]" ลงในไฟล์การกำหนดค่า networkd.conf เพื่อกำหนดค่าป้ายกำกับและคำนำหน้าสำหรับที่อยู่ IPv6
  • เพิ่มตัวเลือก "--stdin" ในคำสั่ง 'networkctl edit' เพื่อรับเนื้อหาไฟล์จากสตรีมมาตรฐาน เพิ่มการรองรับสำหรับการแก้ไขและการแสดงไฟล์ .netdev โดยการระบุอินเทอร์เฟซเครือข่ายให้กับคำสั่ง 'networkctl edit' และ 'networkctl cat' เพิ่มตัวเลือก "--no-ask-password" เพื่อปิดใช้งานการอนุญาตแบบโต้ตอบ
  • เพิ่มตัวเลือก "--certificate-source" ให้กับยูทิลิตี้ ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart และ systemd-sbsign เพื่อโหลดใบรับรอง X.509 ผ่านผู้ให้บริการ OpenSSL แทนที่จะโหลดโดยตรงจาก ไฟล์.
  • systemd-boot เพิ่มความสามารถในการใช้ปุ่มปรับระดับเสียงเพื่อเลื่อนขึ้นและลงผ่านเมนูการบู๊ตซึ่งจะมีประโยชน์บนอุปกรณ์เช่นสมาร์ทโฟน เพิ่มการสนับสนุนสำหรับการติดตั้งฐานข้อมูล UEFI Secure Boot ในรูปแบบ ESL (db/dbx/…) สำหรับ systemd-boot ลงในยูทิลิตี้ bootctl แล้ว
  • เพิ่มตัวเลือก "--list-invocation" ใน Journalctl เพื่อแสดงรายการการเรียกหน่วยและตัวเลือก "--invocation" ("-I") เพื่อแสดงบันทึกที่เกี่ยวข้องกับการโทรเฉพาะเท่านั้น
  • systemd-nspawn เพิ่มการรองรับการใช้งาน FUSE (ระบบไฟล์ใน Userspace) ที่ไม่มีสิทธิพิเศษในคอนเทนเนอร์ เมื่อใช้ตัวเลือก “--bind-user” คีย์ SSH ของผู้ใช้ที่จำเป็นสำหรับการเข้าถึงผ่าน SSH จะถูกส่งต่อไปยังคอนเทนเนอร์
  • libsystemd ได้เพิ่มอินเทอร์เฟซการเขียนโปรแกรมใหม่ "sd-json" ที่ใช้รูปแบบ JSON รวมถึงอินเทอร์เฟซ "sd-varlink" ที่ใช้ IPC Varlink
  • เวอร์ชันเคอร์เนลพื้นฐานที่แนะนำได้รับการอัปเกรดเป็นรุ่น 5.4 ซึ่งสร้างขึ้นในปี 2019 ปีหน้าพวกเขาวางแผนที่จะหยุดรองรับเคอร์เนลรุ่นเก่าและกำหนดให้รุ่น 5.4 เป็นเวอร์ชันพื้นฐานขั้นต่ำที่รองรับ
  • การสนับสนุน cgroups v1 เลิกใช้แล้วและถูกปิดใช้งานตามค่าเริ่มต้น (หากต้องการเปิดใช้งาน คุณต้องระบุ SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 บนบรรทัดคำสั่งเคอร์เนล นอกเหนือจากการเปิดใช้งานในการตั้งค่า systemd) systemd 258 รุ่นถัดไปมีแผนที่จะลบโค้ดที่เกี่ยวข้องกับ cgroups v1 ออกโดยสมบูรณ์ Systemd เวอร์ชัน 258 มีกำหนดจะลบการรองรับสคริปต์บริการ System V

ที่มา: opennet.ru

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster