phát hành trình quản lý hệ thống systemd 242

[:en]

Sau hai tháng phát triển trình bày phát hành quản lý hệ thống systemd 242. Các tính năng mới bao gồm hỗ trợ cho các đường hầm L2TP, khả năng kiểm soát hành vi của systemd-logind khi khởi động lại thông qua các biến môi trường, hỗ trợ các phân vùng khởi động XBOOTLDR mở rộng để gắn /boot, khả năng khởi động với phân vùng gốc trong lớp phủ và một số lượng lớn cài đặt mới cho các loại đơn vị khác nhau.

Sự thay đổi chính:

  • systemd-networkd cung cấp hỗ trợ cho các đường hầm L2TP;
  • sd-boot và bootctl hỗ trợ các phân vùng XBOOTLDR (Bộ tải khởi động mở rộng) được gắn trên /boot, ngoài các phân vùng ESP được gắn trên /efi hoặc /boot/efi. Giờ đây, các hạt nhân, cài đặt, hình ảnh initrd và EFI có thể được tải từ cả hai phân vùng ESP và XBOOTLDR. Thay đổi này cho phép sử dụng bộ tải khởi động sd-boot trong các tình huống thận trọng hơn, khi bản thân bộ tải khởi động được đặt trong ESP, đồng thời các nhân có thể khởi động và siêu dữ liệu liên quan của chúng được chuyển sang một phần riêng biệt;
  • Đã thêm khả năng khởi động với tùy chọn "systemd.volatile=overlay" được truyền vào kernel, cho phép bạn đặt phân vùng gốc trong overlayfs và tổ chức công việc trên hình ảnh chỉ đọc của thư mục gốc với các thay đổi được ghi vào một thư mục riêng trong tmpfs (các thay đổi trong cấu hình này bị mất sau khi khởi động lại). Tương tự, tùy chọn "--volatile=overlay" đã được thêm vào systemd-nspawn để sử dụng chức năng tương tự trong vùng chứa;
  • Đã thêm tùy chọn "--oci-bundle" vào systemd-nspawn để cho phép sử dụng các gói thời gian chạy nhằm cho phép chạy các vùng chứa bị cô lập tuân thủ thông số kỹ thuật Sáng kiến ​​vùng chứa mở (OCI). Hỗ trợ cho các tùy chọn khác nhau được mô tả trong đặc tả OCI được đề xuất để sử dụng trên các đơn vị dòng lệnh và nspawn, ví dụ: cài đặt "--không thể truy cập" và "Không thể truy cập" có thể được sử dụng để loại trừ các phần của hệ thống tệp và "- tùy chọn -console" đã được thêm vào để định cấu hình luồng đầu ra tiêu chuẩn và "—pipe";
  • Đã thêm khả năng kiểm soát hành vi đăng nhập systemd thông qua các biến môi trường: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_MENU và
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. Sử dụng các biến này, bạn có thể kết nối trình xử lý quy trình khởi động lại của riêng mình (/run/systemd/reboot-to-firmware-setup,/run/systemd/reboot-to-boot-loader-menu và
    /run/systemd/reboot-to-boot-loader-entry) hoặc vô hiệu hóa chúng hoàn toàn (khi được đặt thành false);

  • Đã thêm tùy chọn "--boot-load-menu=" vào lệnh "khởi động lại systemctl" và
    "--boot-loader-entry=", cho phép bạn chọn một mục menu khởi động cụ thể hoặc chế độ khởi động sau khi khởi động lại;

  • Đã thêm lệnh cách ly hộp cát mới "RestrictSUIDSGID=" sử dụng seccomp để ngăn việc tạo tệp có cờ SUID/SGID;
  • Đã triển khai các hạn chế mặc định "NoNewPrivileges" và "RestrictSUIDSGID" trong các dịch vụ có bật tính năng tạo ID người dùng động ("DynamicUser");
  • Cài đặt MACAddressPolicy=persistent mặc định trong các tệp .link đã được thay đổi để bao gồm nhiều thiết bị hơn. Các giao diện của cầu mạng, đường hầm (tun, tap) và liên kết tổng hợp (liên kết) không tự nhận dạng ngoại trừ tên của giao diện mạng, vì vậy tên này hiện được sử dụng làm cơ sở để liên kết địa chỉ MAC và IPv4. Ngoài ra, cài đặt "MACAddressPolicy=random" đã được thêm vào, cài đặt này có thể được sử dụng để liên kết địa chỉ MAC và IPv4 với thiết bị theo thứ tự ngẫu nhiên;
  • Các tệp đơn vị ".device" được tạo qua systemd-fstab-generator không còn bao gồm các đơn vị ".mount" tương ứng dưới dạng phụ thuộc trong phần "Muốn =". Chỉ cần gắn một thiết bị không còn tự động khởi chạy đơn vị gắn kết, nhưng các đơn vị đó vẫn có thể được khởi chạy vì các lý do khác, chẳng hạn như một phần của local-fs.target hoặc phụ thuộc vào các đơn vị khác phụ thuộc vào local-fs.target;
  • Hỗ trợ cho các mặt nạ ("*", v.v.) đã được thêm vào các lệnh "networkctl list/status/lldp" để lọc ra các nhóm giao diện mạng nhất định theo một phần tên của chúng;
  • Biến môi trường $PIDFILE hiện được đặt bằng cách sử dụng đường dẫn tuyệt đối được định cấu hình trong các dịch vụ thông qua 'PIDFile=;
  • Đã thêm máy chủ Cloudflare công cộng (1.1.1.1) vào số lượng máy chủ DNS dự phòng được sử dụng khi DNS chính không được xác định rõ ràng. Để ghi đè danh sách máy chủ DNS dự phòng, bạn có thể sử dụng tùy chọn "-Ddns-servers=";
  • Khi bộ điều khiển thiết bị USB được phát hiện, trình xử lý usb-gadget.target mới sẽ tự động khởi chạy (khi hệ thống đang chạy trên thiết bị ngoại vi USB);
  • Đối với các tệp đơn vị, cài đặt "CPUQuotaPeriodSec=" được triển khai, xác định khoảng thời gian tương ứng với hạn ngạch thời gian CPU được đo, được đặt thông qua cài đặt "CPUQuota=";
  • Đối với các tệp đơn vị, cài đặt "ProtectHostname=" được triển khai, cấm các dịch vụ thay đổi thông tin về tên máy chủ, ngay cả khi chúng có quyền thích hợp;
  • Đối với các tệp đơn vị, cài đặt "NetworkNamespacePath=" được triển khai, cho phép bạn liên kết không gian tên với các dịch vụ hoặc đơn vị ổ cắm bằng cách chỉ định đường dẫn đến tệp không gian tên trong /proc pseudo-FS;
  • Đã thêm khả năng vô hiệu hóa việc thay thế các biến môi trường cho các quy trình được khởi chạy bằng cách sử dụng cài đặt "ExecStart =" bằng cách thêm ký tự ":" trước lệnh bắt đầu;
  • Đối với bộ hẹn giờ (đơn vị .timer), các cờ mới "OnClockChange=" và
    "OnTimezoneChange=", bạn có thể điều khiển cuộc gọi của thiết bị khi thay đổi múi giờ hoặc múi giờ của hệ thống;

  • Đã thêm cài đặt mới "ConditionMemory=" và "ConditionCPUs=" xác định các điều kiện để gọi một đơn vị tùy thuộc vào kích thước của bộ nhớ và số lượng lõi CPU (ví dụ: chỉ có thể khởi động một dịch vụ sử dụng nhiều tài nguyên nếu số lượng yêu cầu RAM có sẵn);
  • Một đơn vị time-set.target mới đã được thêm vào chấp nhận thời gian hệ thống được đặt cục bộ mà không cần sử dụng đối chiếu với các máy chủ thời gian chính xác bên ngoài bằng cách sử dụng đơn vị time-sync.target. Đơn vị mới có thể được sử dụng bởi các dịch vụ cần độ chính xác của đồng hồ cục bộ không được đồng bộ hóa;
  • Đã thêm tùy chọn "--show-giao dịch" vào "systemctl start" và các lệnh tương tự để hiển thị tóm tắt tất cả các công việc được thêm vào hàng đợi do thao tác được yêu cầu;
  • systemd-networkd đã triển khai định nghĩa cho một trạng thái mới, 'nô lệ', được sử dụng thay vì 'xuống cấp' hoặc 'nhà cung cấp dịch vụ' cho các giao diện mạng là một phần của liên kết tổng hợp hoặc cầu nối mạng. Đối với các giao diện chính, trong trường hợp xảy ra sự cố với một trong các liên kết phức hợp, trạng thái 'sóng mang xuống cấp' đã được thêm vào;
  • Đã thêm tùy chọn "IgnoreCarrierLoss=" cho các đơn vị .network để lưu cài đặt mạng trong trường hợp lỗi kết nối;
  • Thông qua cài đặt “RequiredForOnline=” trong các đơn vị .network, giờ đây bạn có thể đặt trạng thái liên kết tối thiểu được phép cần thiết để chuyển giao diện mạng sang “trực tuyến” và kích hoạt trình xử lý systemd-networkd-wait-online;
  • Đã thêm tùy chọn "--any" vào systemd-networkd-wait-online để chờ bất kỳ giao diện mạng nào được chỉ định sẵn sàng thay vì tất cả và tùy chọn "--operational-state=" để xác định trạng thái của liên kết cho biết rằng nó đã sẵn sàng;
  • Đã thêm cài đặt "UseAutonomousPrefix=" và "UseOnLinkPrefix=" vào các đơn vị .network có thể được sử dụng để bỏ qua các tiền tố khi nhận
    thông báo từ bộ định tuyến IPv6 (RA, Quảng cáo bộ định tuyến);

  • Đã thêm cài đặt “MulticastFlood=”, “NeighborSuppression=” và “Learning=” vào các đơn vị .network để thay đổi các tham số hoạt động của cầu nối mạng, cũng như cài đặt “TripleSampling=” để thay đổi chế độ LẤY MẪU TRIPLE của giao diện CAN ảo;
  • Đã thêm cài đặt “PrivateKeyFile=” và “PresharedKeyFile=” cho các đơn vị .netdev, nhờ đó bạn có thể chỉ định các khóa riêng tư và khóa chung (PSK) cho giao diện WireGuard VPN;
  • Đã thêm các tùy chọn same-cpu-crypt và submit-from-crypt-cpus vào /etc/crypttab để kiểm soát hành vi của bộ lập lịch khi di chuyển các công việc liên quan đến mã hóa giữa các lõi CPU;
  • systemd-tmpfiles cung cấp khả năng xử lý tệp khóa trước khi thực hiện các thao tác trong thư mục có tệp tạm thời, cho phép bạn vô hiệu hóa công việc dọn dẹp các tệp lỗi thời trong thời gian thực hiện một số hành động nhất định (ví dụ: khi giải nén tệp lưu trữ tar trong / tmp, rất cũ có thể mở các tệp không thể xóa trước khi kết thúc hành động với chúng);
  • Lệnh “systemd-analyze cat-config” cung cấp khả năng phân tích cấu hình được chia thành nhiều tệp, ví dụ: cài đặt trước của người dùng và hệ thống, nội dung của tmpfiles.d và sysusers.d, quy tắc udev, v.v.
  • Đã thêm tùy chọn "--cursor-file=" vào "journalctl" để chỉ định tệp sẽ tải và lưu vị trí con trỏ;
  • Đã thêm định nghĩa về trình ảo hóa ACRN và hệ thống con WSL (Hệ thống con Windows cho Linux) vào systemd-detect-virt để phân nhánh tiếp theo bằng cách sử dụng toán tử có điều kiện "ConditionVirtualization";
  • Đã dừng tạo liên kết tượng trưng trong /etc tới systemd-networkd.service, systemd-networkd.socket, systemd-networkd.socket,
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service và systemd-timesyncd.service. Để tạo các tệp này, bây giờ bạn cần chạy lệnh “systemctl preset-all”.

Nguồnopennet.ru

[: En]

Sau hai tháng phát triển trình bày phát hành quản lý hệ thống systemd 242. Các tính năng mới bao gồm hỗ trợ cho các đường hầm L2TP, khả năng kiểm soát hành vi của systemd-logind khi khởi động lại thông qua các biến môi trường, hỗ trợ các phân vùng khởi động XBOOTLDR mở rộng để gắn /boot, khả năng khởi động với phân vùng gốc trong lớp phủ và một số lượng lớn cài đặt mới cho các loại đơn vị khác nhau.

Sự thay đổi chính:

  • systemd-networkd cung cấp hỗ trợ cho các đường hầm L2TP;
  • sd-boot và bootctl hỗ trợ các phân vùng XBOOTLDR (Bộ tải khởi động mở rộng) được gắn trên /boot, ngoài các phân vùng ESP được gắn trên /efi hoặc /boot/efi. Giờ đây, các hạt nhân, cài đặt, hình ảnh initrd và EFI có thể được tải từ cả hai phân vùng ESP và XBOOTLDR. Thay đổi này cho phép sử dụng bộ tải khởi động sd-boot trong các tình huống thận trọng hơn, khi bản thân bộ tải khởi động được đặt trong ESP, đồng thời các nhân có thể khởi động và siêu dữ liệu liên quan của chúng được chuyển sang một phần riêng biệt;
  • Đã thêm khả năng khởi động với tùy chọn "systemd.volatile=overlay" được truyền vào kernel, cho phép bạn đặt phân vùng gốc trong overlayfs và tổ chức công việc trên hình ảnh chỉ đọc của thư mục gốc với các thay đổi được ghi vào một thư mục riêng trong tmpfs (các thay đổi trong cấu hình này bị mất sau khi khởi động lại). Tương tự, tùy chọn "--volatile=overlay" đã được thêm vào systemd-nspawn để sử dụng chức năng tương tự trong vùng chứa;
  • Đã thêm tùy chọn "--oci-bundle" vào systemd-nspawn để cho phép sử dụng các gói thời gian chạy nhằm cho phép chạy các vùng chứa bị cô lập tuân thủ thông số kỹ thuật Sáng kiến ​​vùng chứa mở (OCI). Hỗ trợ cho các tùy chọn khác nhau được mô tả trong đặc tả OCI được đề xuất để sử dụng trên các đơn vị dòng lệnh và nspawn, ví dụ: cài đặt "--không thể truy cập" và "Không thể truy cập" có thể được sử dụng để loại trừ các phần của hệ thống tệp và "- tùy chọn -console" đã được thêm vào để định cấu hình luồng đầu ra tiêu chuẩn và "—pipe";
  • Đã thêm khả năng kiểm soát hành vi đăng nhập systemd thông qua các biến môi trường: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_MENU và
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. Sử dụng các biến này, bạn có thể kết nối trình xử lý quy trình khởi động lại của riêng mình (/run/systemd/reboot-to-firmware-setup,/run/systemd/reboot-to-boot-loader-menu và
    /run/systemd/reboot-to-boot-loader-entry) hoặc vô hiệu hóa chúng hoàn toàn (khi được đặt thành false);

  • Đã thêm tùy chọn "--boot-load-menu=" vào lệnh "khởi động lại systemctl" và
    "--boot-loader-entry=", cho phép bạn chọn một mục menu khởi động cụ thể hoặc chế độ khởi động sau khi khởi động lại;

  • Đã thêm lệnh cách ly hộp cát mới "RestrictSUIDSGID=" sử dụng seccomp để ngăn việc tạo tệp có cờ SUID/SGID;
  • Đã triển khai các hạn chế mặc định "NoNewPrivileges" và "RestrictSUIDSGID" trong các dịch vụ có bật tính năng tạo ID người dùng động ("DynamicUser");
  • Cài đặt MACAddressPolicy=persistent mặc định trong các tệp .link đã được thay đổi để bao gồm nhiều thiết bị hơn. Các giao diện của cầu mạng, đường hầm (tun, tap) và liên kết tổng hợp (liên kết) không tự nhận dạng ngoại trừ tên của giao diện mạng, vì vậy tên này hiện được sử dụng làm cơ sở để liên kết địa chỉ MAC và IPv4. Ngoài ra, cài đặt "MACAddressPolicy=random" đã được thêm vào, cài đặt này có thể được sử dụng để liên kết địa chỉ MAC và IPv4 với thiết bị theo thứ tự ngẫu nhiên;
  • Các tệp đơn vị ".device" được tạo qua systemd-fstab-generator không còn bao gồm các đơn vị ".mount" tương ứng dưới dạng phụ thuộc trong phần "Muốn =". Chỉ cần gắn một thiết bị không còn tự động khởi chạy đơn vị gắn kết, nhưng các đơn vị đó vẫn có thể được khởi chạy vì các lý do khác, chẳng hạn như một phần của local-fs.target hoặc phụ thuộc vào các đơn vị khác phụ thuộc vào local-fs.target;
  • Hỗ trợ cho các mặt nạ ("*", v.v.) đã được thêm vào các lệnh "networkctl list/status/lldp" để lọc ra các nhóm giao diện mạng nhất định theo một phần tên của chúng;
  • Biến môi trường $PIDFILE hiện được đặt bằng cách sử dụng đường dẫn tuyệt đối được định cấu hình trong các dịch vụ thông qua 'PIDFile=;
  • Đã thêm máy chủ Cloudflare công cộng (1.1.1.1) vào số lượng máy chủ DNS dự phòng được sử dụng khi DNS chính không được xác định rõ ràng. Để ghi đè danh sách máy chủ DNS dự phòng, bạn có thể sử dụng tùy chọn "-Ddns-servers=";
  • Khi bộ điều khiển thiết bị USB được phát hiện, trình xử lý usb-gadget.target mới sẽ tự động khởi chạy (khi hệ thống đang chạy trên thiết bị ngoại vi USB);
  • Đối với các tệp đơn vị, cài đặt "CPUQuotaPeriodSec=" được triển khai, xác định khoảng thời gian tương ứng với hạn ngạch thời gian CPU được đo, được đặt thông qua cài đặt "CPUQuota=";
  • Đối với các tệp đơn vị, cài đặt "ProtectHostname=" được triển khai, cấm các dịch vụ thay đổi thông tin về tên máy chủ, ngay cả khi chúng có quyền thích hợp;
  • Đối với các tệp đơn vị, cài đặt "NetworkNamespacePath=" được triển khai, cho phép bạn liên kết không gian tên với các dịch vụ hoặc đơn vị ổ cắm bằng cách chỉ định đường dẫn đến tệp không gian tên trong /proc pseudo-FS;
  • Đã thêm khả năng vô hiệu hóa việc thay thế các biến môi trường cho các quy trình được khởi chạy bằng cách sử dụng cài đặt "ExecStart =" bằng cách thêm ký tự ":" trước lệnh bắt đầu;
  • Đối với bộ hẹn giờ (đơn vị .timer), các cờ mới "OnClockChange=" và
    "OnTimezoneChange=", bạn có thể điều khiển cuộc gọi của thiết bị khi thay đổi múi giờ hoặc múi giờ của hệ thống;

  • Đã thêm cài đặt mới "ConditionMemory=" và "ConditionCPUs=" xác định các điều kiện để gọi một đơn vị tùy thuộc vào kích thước của bộ nhớ và số lượng lõi CPU (ví dụ: chỉ có thể khởi động một dịch vụ sử dụng nhiều tài nguyên nếu số lượng yêu cầu RAM có sẵn);
  • Một đơn vị time-set.target mới đã được thêm vào chấp nhận thời gian hệ thống được đặt cục bộ mà không cần sử dụng đối chiếu với các máy chủ thời gian chính xác bên ngoài bằng cách sử dụng đơn vị time-sync.target. Đơn vị mới có thể được sử dụng bởi các dịch vụ cần độ chính xác của đồng hồ cục bộ không được đồng bộ hóa;
  • Đã thêm tùy chọn "--show-giao dịch" vào "systemctl start" và các lệnh tương tự để hiển thị tóm tắt tất cả các công việc được thêm vào hàng đợi do thao tác được yêu cầu;
  • systemd-networkd đã triển khai định nghĩa cho một trạng thái mới, 'nô lệ', được sử dụng thay vì 'xuống cấp' hoặc 'nhà cung cấp dịch vụ' cho các giao diện mạng là một phần của liên kết tổng hợp hoặc cầu nối mạng. Đối với các giao diện chính, trong trường hợp xảy ra sự cố với một trong các liên kết phức hợp, trạng thái 'sóng mang xuống cấp' đã được thêm vào;
  • Đã thêm tùy chọn "IgnoreCarrierLoss=" cho các đơn vị .network để lưu cài đặt mạng trong trường hợp lỗi kết nối;
  • Thông qua cài đặt “RequiredForOnline=” trong các đơn vị .network, giờ đây bạn có thể đặt trạng thái liên kết tối thiểu được phép cần thiết để chuyển giao diện mạng sang “trực tuyến” và kích hoạt trình xử lý systemd-networkd-wait-online;
  • Đã thêm tùy chọn "--any" vào systemd-networkd-wait-online để chờ bất kỳ giao diện mạng nào được chỉ định sẵn sàng thay vì tất cả và tùy chọn "--operational-state=" để xác định trạng thái của liên kết cho biết rằng nó đã sẵn sàng;
  • Đã thêm cài đặt "UseAutonomousPrefix=" và "UseOnLinkPrefix=" vào các đơn vị .network có thể được sử dụng để bỏ qua các tiền tố khi nhận
    thông báo từ bộ định tuyến IPv6 (RA, Quảng cáo bộ định tuyến);

  • Đã thêm cài đặt “MulticastFlood=”, “NeighborSuppression=” và “Learning=” vào các đơn vị .network để thay đổi các tham số hoạt động của cầu nối mạng, cũng như cài đặt “TripleSampling=” để thay đổi chế độ LẤY MẪU TRIPLE của giao diện CAN ảo;
  • Đã thêm cài đặt “PrivateKeyFile=” và “PresharedKeyFile=” cho các đơn vị .netdev, nhờ đó bạn có thể chỉ định các khóa riêng tư và khóa chung (PSK) cho giao diện WireGuard VPN;
  • Đã thêm các tùy chọn same-cpu-crypt và submit-from-crypt-cpus vào /etc/crypttab để kiểm soát hành vi của bộ lập lịch khi di chuyển các công việc liên quan đến mã hóa giữa các lõi CPU;
  • systemd-tmpfiles cung cấp khả năng xử lý tệp khóa trước khi thực hiện các thao tác trong thư mục có tệp tạm thời, cho phép bạn vô hiệu hóa công việc dọn dẹp các tệp lỗi thời trong thời gian thực hiện một số hành động nhất định (ví dụ: khi giải nén tệp lưu trữ tar trong / tmp, rất cũ có thể mở các tệp không thể xóa trước khi kết thúc hành động với chúng);
  • Lệnh “systemd-analyze cat-config” cung cấp khả năng phân tích cấu hình được chia thành nhiều tệp, ví dụ: cài đặt trước của người dùng và hệ thống, nội dung của tmpfiles.d và sysusers.d, quy tắc udev, v.v.
  • Đã thêm tùy chọn "--cursor-file=" vào "journalctl" để chỉ định tệp sẽ tải và lưu vị trí con trỏ;
  • Đã thêm định nghĩa về trình ảo hóa ACRN và hệ thống con WSL (Hệ thống con Windows cho Linux) vào systemd-detect-virt để phân nhánh tiếp theo bằng cách sử dụng toán tử có điều kiện "ConditionVirtualization";
  • Đã dừng tạo liên kết tượng trưng trong /etc tới systemd-networkd.service, systemd-networkd.socket, systemd-networkd.socket,
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service và systemd-timesyncd.service. Để tạo các tệp này, bây giờ bạn cần chạy lệnh “systemctl preset-all”.

Nguồn: opennet.ru

[:]

Thêm một lời nhận xét