OpenCloudOS 8.10 釋出:全面相容企業級 Linux 生態 ,引入更多新 module

OpenCloudOS發表於2024-08-14

2024 年 8 月,OpenCloudOS 社群年度新版本 OpenCloudOS 8.10 正式釋出。全面相容 RHEL 8.10 使用者態包,引入 Python 3.12 軟體包,更新 GCC Toolset 13、LLVM Toolset 17,Rust Toolset 1.75.0,Go Toolset 1.21.0 等編譯器和開發工具。

OpenCloudOS 8.10 採用 Kernel 5.4 LTS 版本(核心小版本 0009.32), 版本新增支援飛騰平臺新的 CPU,新增支援 wangxun 10GB 網路卡,PCI/MSI 支援 32 位與 64 位訪問,修復 CVE:CVE-2021-3760 和 CVE-2024-1086 安全漏洞。

OpenCloudOS 8.10 在修復上游漏洞的同時也提高了編譯效能,引入新模組流Ruby 3.3、PHP 8.2、Nginx 1.24、MariaDB 10.11、PostgreSQL 16 等,為使用者提供更加穩定、豐富的生態體驗。以下為本次 OpenCloudOS 8.10 全部更新內容。

一、安全性

1、SCAP 安全指南 rebase 到 0.1.72

SCAP 安全指南(SSG)軟體包已 rebase 到上游版本 0.1.72。此版本提供了bug 修正和各種改進,最重要的是:

  • CIS 配置檔案已被更新為與最新的基準一致。
  • PCI DSS 配置檔案與 PCI DSS 策略版本 4.0 一致。
  • STIG 配置檔案與最新的 DISA STIG 策略一致。

2、OpenSSL 現在包含針對類似 Bleichenbacher 的攻擊的保護

這個 OpenSSL TLS 工具包發行版本引入了類似對 RSA PKCS #1 v1.5 解密過程的 Bleichenbacher 攻擊的保護。如果 RSA 解密在 PKCS #1 v1.5 解密過程中檢測到一個錯誤,則它現在返回一個隨機生成的確定性訊息,而不是一個錯誤。這個變化提供了對漏洞的通用保護。

您可以透過對 RSA 解密上下文呼叫 EVP_PKEY_CTX_ctrl_str (ctx, "rsa_pkcs1_implicit_rejection"."0") 函式來禁用這個保護,但這會使您的系統更易受攻擊。

3、librdkafka rebase 到 1.6.1

Apache Kafka 協議的 librdkafka 實現已 rebase 到上游版本 1.6.1。這是 OC 8 的第一個主功能發行版本。rebase 提供了很多重要的改進和 bug 修復。對於所有相關更改,請參閱 librdkafka 軟體包中提供的 CHANGELOG.md 文件。

4、libkcapi rebase 到 1.4.0

提供對 Linux 核心加密 API 訪問的 libkcapi 庫已 rebase 到上游版本 1.4.0。更新包括各種改進和 bug 修復,最重要的是:

  • 新增了 sm3sum 和 sm3hmac 工具。、
  • 新增了 kcapi_md_sm3 和 kcapi_md_hmac_sm3 API。
  • 新增了 SM4 方便功能。
  • 修復了對連結時間最佳化(LTO)的支援。
  • 修復了 LTO 迴歸測試。
  • 修復了對任意大小的 kcapi-enc 的 AEAD 加密的支援。

5、stunnel rebase 到 5.71

stunnel TLS/SSL 隧道服務已 rebase 到上游版本 5.71。此更新更改了 FIPS 模式下 OpenSSL 1.1 及更新版本的行為。如果 OpenSSL 在 FIPS 模式下,且 stunnel 預設 FIPS 配置被設定為 no,則 stunnel 適應 OpenSSL ,且 FIPS 模式被啟用。

其他新功能包括:

  • 新增了對現代 PostgreSQL 客戶端的支援。
  • 您可以使用 protocolHeader 服務級選項來插入自定義的 connect 協議協商標頭。
  • 您可以使用 protocolHost 選項控制客戶端 SMTP 協議協商 HELO/EHLO 值。
  • 新增了對客戶端 protocol = ldap 的客戶端支援。
  • 現在,您可以使用服務級 sessionResume 選項配置會話恢復。
  • 新增了伺服器模式下使用 CApath 請求客戶端證書的支援(以前,只支援使用 CAfile )。
  • 改進了檔案讀和日誌記錄效能。
  • 新增了對 retry 選項的可配置延遲的支援。
  • 在客戶端模式下,當設定了 verifyChain 時,請求和驗證 OCSP 裝訂。
  • 在伺服器模式下,始終提供 OCSP 裝訂。
  • 不確定的 OCSP 驗證會破壞 TLS 協商。您可以透過設定 OCSPrequire = no 來禁用它。

6、OpenSSH 限制身份驗證中的人工延遲

登入失敗後 OpenSSH 的響應被人工延遲,以防止使用者列舉攻擊。此更新引入了一個上限,以便在遠端身份驗證用時很長(例如在特權訪問管理(PAM)處理中)時,這種人工延遲不會過長。

7、libkcapi 現在提供了一個用於在雜湊-和計算中指定目標檔名的選項*

這個 libkcapi (Linux 核心加密 API)軟體包的更新引進了新選項 -T,用於在雜湊-和計算中指定目標檔名。此選項的值覆蓋處理後的 HMAC 檔案中指定的檔名。您只能透過 -c 選項使用這個選項,例如:

$ sha256hmac -c <hmac_file> -T <target_file>

8、audit rebase 到 3.1.2

Linux Audit 系統已更新至版本 3.1.2,與之前釋出的版本 3.0.7 相比,它提供了 bug 修復、功能增強和效能改進。主要改進包括:

  • auparse 庫現在解釋未命名的和匿名的套接字。
  • 您可以在 ausearch 和 aureport 工具的 start 和 end 選項中使用新關鍵字 this-hour。
  • 在 auditctl 程式中新增了用於訊號的使用者友好的關鍵字。
  • 改進了對 auparse 中損壞的日誌的處理。
  • 現在,ProtectControlGroups 選項在 auditd 服務中預設被禁用。
  • 對 exclude 過濾器的規則檢查已修復。
  • OPENAT2 欄位的解釋已改進。
  • audispd af_unix 外掛已移到獨立的程式。
  • Python 繫結已被修改,以防止從 Python API 設定審計規則。這個更改是由於 Simplified Wrapper 和 Interface Generator (SWIG)中的一個 bug 而做的。

二、Shell 和命令列工具

1、openCryptoki rebase 到版本 3.22.0

opencryptoki 軟體包已更新至版本 3.22.0。主要變更包括:

  • 使用 CPACF 保護的金鑰新增了對 AES-XTS 金鑰型別的支援。
  • 新增了對管理證書物件的支援。
  • 新增了對使用 no-login 選項的公共會話的支援。
  • 新增了對以 Security Officer (SO)身份登入的支援。
  • 新增了對匯入和匯出 Edwards 和 Montgomery 金鑰的支援。
  • 新增了對匯入 RSA-PSS 金鑰和證書的支援。
  • 為安全起見,AES-XTS 金鑰的兩個金鑰部分不應相同。此更新增加了對金鑰生成和匯入過程的檢查,以確保這一點。
  • 實施了各種 bug 修復。

三、基礎架構服務

1、chrony rebase 到版本 4.5

chrony 套件已更新至版本 4.5。主要變更包括:

  • 新增了由 hostname 指定的網路時間協議(NTP)源的定期重新整理。預設間隔為兩週,可以透過向 chrony.conf 檔案中新增 refresh 0 來禁用它。
  • 改進了自動替換無法訪問的 NTP 源。
  • 改進了 chronyc 工具所做的重要更改的日誌記錄。
  • 改進了源選擇失敗和 falsetickers 的日誌記錄。
  • 新增了 hwtstimeout 指令,來為延遲硬體傳輸時間戳配置超時時間。
  • 新增了對 Precision Time Protocol (PTP)透明時鐘提供的修正的實驗性支援,以達到具有硬體時間戳的 PTP 的精度。
  • 修復了 interleaved 下的 presend 選項。
  • 修復了從 sourcedir 目錄中重新載入由 IP 地址指定的修改源。

2、linuxptp rebase 到版本 4.2

linuxptp 協議已更新至版本 4.2。主要變更包括:

  • 新增了對 phc2sys 工具中多個域的支援。
  • 新增了對時鐘更新以及 Precision Time Protocol (PTP)父資料集中通知的支援,如 clock 類。
  • 新增了對 PTP Power Profile 的支援,即 IEEE C37.238-2011 和 IEEE C37.238-2017。

四、網路

1、ss 工具向 TCP 繫結的非活動套接字新增了可見性改進

iproute2 套件提供了控制 TCP/IP 網路流量的工具集。TCP 繫結的非活動套接字附加到 IP 地址和埠號,但不連線或偵聽 TCP 埠。套接字服務(ss)工具新增了對核心的支援,以轉儲 TCP 繫結的非活動套接字。您可以使用以下命令選項檢視這些套接字:

  • ss --all: 轉儲包括 TCP 繫結的非活動套接字的所有套接字
  • ss --bound-inactive: 只轉儲繫結的非活動套接字

2、nispor rebase 到版本 1.2.10

nispor 軟體包已升級到上游版本 1.2.10,與之前的版本相比,它提供了很多改進和 bug 修復:

  • 新增了對 NetStateFilter 的支援,以在網路路由和介面上使用核心過濾器。
  • 單根輸入和輸出虛擬化(SR-IOV)介面可以為每個(VF)查詢 SR-IOV 虛擬功能(SR-IOV VF)資訊。
  • 新支援的繫結選項:lacp_active,arp_missed_max 和 ns_ip6_target。

五、動態程式語言、網頁和資料庫伺服器

1、OC 8.10 中提供的 Python 3.12

OC 8.10 引入了 Python 3.12,與之前釋出的 Python 3.11 相比,顯著改進包括:

  • Python 引入了一個用於通用類和函式的新 type 語句和新型別引數語法。
  • 格式化的字串字面(f-string)已在語法中被正式化,現在被直接整合到解析器中。
  • Python 現在提供一個唯一的每直譯器全域性直譯器鎖(GIL)。
  • 現在,您可以使用 Python 程式碼中的緩衝協議。
  • 為提高安全性,SHA1、SHA3、SHA2-384、SHA2-512 和 MD5 加密演算法的內建 hashlib 實現已被 HACL* 專案中的正式驗證的程式碼所替代。如果 OpenSSL 不提供它們,內建實現仍作為後備可用。
  • CPython 中的字典、列標和理解現在是內聯的。這顯著提高了理解執行的速度。
  • CPython 現在支援 Linux perf 分析器。
  • CPython 現在對支援的平臺提供堆疊溢位保護。

要從 Python 3.12 堆疊安裝軟體包,請使用,例如:

yum install python3.12yum install python3.12-pip

要執行直譯器,請使用,例如:

$ python3.12$ python3.12 -m pip --help

2、Python 中的一個控制電子郵件地址解析的新環境變數

為緩解 CVE-2023-27043 向後相容的更改,以確保在 Python 3 中引入了更嚴格的電子郵件地址的解析。

此更新引入了一個新的 PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING 環境變數。當您將此變數設定為 true 時,以前的、不太嚴格的解析行為是整個系統的預設設定:

export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true

但是,對受影響函式的單個呼叫可能仍然啟用更嚴格的行為。

您可以透過使用以下內容建立 /etc/python/email.cfg 配置檔案來取得相同的結果:

[email_addr_parsing]PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true

3、新模組流:Ruby 3.3

OC 8.10 在新的 ruby:3.3 模組流中引入了 Ruby 3.3.0。與 OC 8.7 一起釋出的 Ruby 3.1 相比,這個版本提供了很多效能改進、bug 和安全修復以及新功能。

主要改進包括:

  • 您可以使用新的 Prism 解析器而不是 Ripper。Prism 是 Ruby 語言的一個可移植的、容錯的和可維護的遞迴下降解析器。
  • YJIT,Ruby 即時(JIT)編譯器實現,不再是實驗性的,它提供了主要的效能改進。
  • 改進了 Regexp 匹配演算法,以減少潛在的正規表示式拒絕服務(ReDoS)漏洞的影響。
  • 新的實驗性 RJIT (一個純 Ruby JIT)編譯器取代了 MJIT。在生產環境中使用 YJIT。
  • 現在提供了一個新的 M:N 執行緒排程程式。

其他顯著變化:

  • 現在,您必須使用 Lrama LALR 解析器生成器,而不是 Bison。
  • 已刪除了幾個棄用的方法和常量。
  • Racc gem 已從預設 gem 提升到捆綁 gem。

要安裝 Ruby 3.3 模組流,請使用:

yum module install ruby:3.3

4、新模組流:PHP 8.2

OC 8.10 新增了 PHP 8.2,版本 8.0 相比,其提供了很多 bug 修復和增強。

使用 PHP 8.2,您可以:

  • 使用列舉(Enums)功能,定義一個僅限於離散的可能值之一的自定義型別。
  • 使用 readonly 修飾符宣告一個屬性,以防止在初始化後修改屬性。
  • 使用光纖、全棧和可中斷功能。
  • 使用只讀類。
  • 宣告幾個新的獨立型別。
  • 使用一個新的 Random 擴充套件。
  • 在特徵中定義約束。

要安裝 PHP 8.2 模組流,請使用以下命令:

yum module install php:8.2

如果要從以前的 PHP 流升級,可使用

yum module reset module-name # yum module enable module-name:new-stream

5、新模組流:Nginx 1.24

Nginx 1.24 web 和代理伺服器現在作為 nginx 1.24 模組流提供。與之前釋出的版本 1.22 相比,此更新提供了很多 bug 修復、安全修復、新功能和增強。

與傳輸層安全(TLS)相關的新功能和更改:

  • 當在 ssl_session_cache 指令中使用共享記憶體時,加密金鑰現在會自動為 TLS 會話票據進行輪轉。
  • 記憶體使用率已在帶有安全套接字層(SSL)代理的配置中進行了最佳化。
  • 現在,您可以使用 resolver 指令的 ipv4=off 引數在解析時禁用查詢 IPv4 地址。
  • nginx 現在支援 $proxy_protocol_tlv_* 變數,其儲存出現在 PROXY v2 TLV 協議中的 Type-Length-Value (TLV)欄位的值。
  • ngx_http_gzip_static_module 模組現在支援位元組範圍。

其他更改:

  • 標頭行現在在內部 API 中表示為連結列表。
  • nginx 現在在 ngx_http_perl_module 的 $r->header_in() 方法中和查詢 $http_..., $sent_http_..., $sent_trailer_..., $upstream_http_... 和 $upstream_trailer_.. 變數的過程中連線傳遞給 FastCGI、SCGI 和 uwsgi 後端的相同名稱的頭字串。
  • 如果重新定義偵聽套接字的協議引數,Nginx 現在會顯示一個警告。
  • 如果管道被客戶端使用了,則 Nginx 現在關閉與 lingering 的連線。
  • 各種 SSL 錯誤的日誌記錄級別已降低,例如從 Critical 降到 Informational。

要安裝 Nginx 1.24 流,請使用:

yum module install nginx:1.24

6、新模組流:MariaDB 10.11

MariaDB 10.11 現在作為新模組流提供。與之前可用的版本 10.5 相比,顯著的改進包括:

  • 一個新的 sys_schema 功能。
  • 原子資料定義語言(DDL)語句。
  • 一個新的 GRANT ...TO PUBLIC 特權。
  • 單獨的 SUPER 和 READ ONLY ADMIN 特權。
  • 一個新的 UUID 資料庫資料型別。
  • 支援安全套接字層(SSL)協議版本 3;MariaDB 伺服器現在需要正確配置的 SSL 才能啟動。
  • 透過 natural_sort_key() 函式支援自然排序順序。
  • 一個新的用於任意文字格式化的 SFORMAT 函式。
  • 對 UTF-8 字符集和 UCA-14 排序規則的更改。
  • systemd 套接字啟用檔案在 /usr/share/ 目錄中提供。請注意,與上游相反,它們不是 OpenCloudOS 中預設配置的一部分。
  • 包含 MariaDB 字串而不是 MySQL 的錯誤訊息。
  • 中文語言中提供的錯誤訊息。
  • 對預設 logrotate 檔案的更改。
  • 對於 MariaDB 和 MySQL 客戶端,命令列上指定的連線屬性(如 --port=3306)現在強制客戶端和伺服器之間通訊的協議型別,如 tcp、socket、管道 或 memory。

要安裝 MariaDB 10.11 流,請使用:

yum module install mariadb:10.11

7、新模組流:PostgreSQL 16

OC 8.10 引入了 PostgreSQL 16,與版本 15 相比,其提供了一些新功能和增強。

主要改進包括:

  • 增強的批次載入提高了效能。
  • libpq 庫現在支援連線級負載均衡。您可以使用新的 load_balance_hosts 選項來獲得更有效的負載平衡。
  • 現在,您可以建立自定義配置檔案,並將其包含在 pg_hba.conf 和 pg_ident.conf 檔案中。
  • PostgreSQL 現在支援與 pg_hba.conf 檔案中的資料庫和角色條目匹配的正規表示式。

其他更改包括:

  • PostgreSQL 不再與 postmaster 二進位制檔案一起分發。使用提供的 systemd 單元檔案(systemctl start postgres 命令)啟動 postgresql 伺服器的使用者不受這個更改的影響。如果您之前透過 postmaster 二進位制檔案直接啟動了 postgresql 伺服器,則您現在必須使用 postgres 二進位制檔案。

  • PostgreSQL 不再在軟體包中提供 PDF 格式的文件。改為使用《線上文件》:

    https://www.postgresql.org/files/documentation/pdf/16/postgresql-16-US.pdf

要安裝 PostgreSQL 16 流,請使用以下命令:

yum module install postgresql:16

8、Git rebase 到版本 2.43.0

Git 版本控制系統已更新至版本 2.43.0,與之前釋出的版本 2.39 相比,它提供了 bug 修復、增強和效能改進。

主要改進包括:

  • 現在,您可以將新的 --source 選項與 git check-attr 命令一起使用,來從提供的 tree-ish 物件,而不是當前工作目錄讀取 .gitattributes 檔案。
  • Git 現在可以將資訊從 WWW-Authenticate response-type 標頭的傳遞到憑證幫助程式。
  • 對於空提交,git format-patch 命令現在會寫一個包含提交標頭的輸出檔案,而不是建立一個空檔案。
  • 現在,您可以使用 git blame --contents= -- 命令,來透過指向 的歷史記錄查詢在 內容開始的行的源。
  • git log --format 命令現在接受 %(decorate) 佔位符來進一步自定義,以擴充套件 --decorate 選項提供的能力。

9、Git LFS rebase 到版本 3.4.1

Git 大檔案儲存(LFS)擴充套件已更新至版本 3.4.1,與之前釋出的版本 3.2.0 相比,它提供了 bug 修復、增強和效能改進。

主要變更包括:

  • git lfs push 命令現在從標準輸入讀取引用和物件 ID。
  • Git LFS 現在在不依賴 Git 來處理替代的 remote。
  • Git LFS 現在支援 WWW-Authenticate response-type 標頭作為憑證幫助程式。

六、編譯器和開發工具

1、elfutils rebase 到版本 0.190

elfutils 軟體包已更新至版本 0.190。主要改進包括:

  • libelf 庫現在支援相對重定位(RELR)。
  • libdw 庫現在識別 .debug_[ct]u_index 部分。
  • eu-readelf 工具現在支援一個新的 -Ds,--use-dynamic --symbol 選項,來透過動態片段,而不是使用 ELF 部分顯示符號。
  • eu-readelf 工具現在可以顯示 .gdb_index 版本 9。
  • 新的 eu-scrlines 工具編譯與指定的 DWARF 或 ELF 檔案關聯的原始檔的列表。
  • debuginfod 伺服器模式已對檔名錶示中的 60% 的壓縮排行了更改(這需要重新索引)。

2、valgrind 更新至 3.22

valgrind 軟體包已更新至版本 3.22。主要改進包括:

  • valgrind memcheck 現在檢查提供給 C 函式 memalign、posix_memalign 和 aligned_alloc 的值,以及與 new 運算子對齊的 C++ 17 是否為有效的對齊值。
  • valgrind memcheck 現在支援對 C++ 14 大小的 和 C++ 17 對齊的 new 和 delete 運算子的不匹配檢測。
  • 新增了對 DWARF 除錯資訊的延遲讀取的支援,從而在安裝了 debuginfo 軟體包時加快啟動速度。

3、移動了 Clang 資源目錄

Clang 儲存其內部標頭和庫的 Clang 資源目錄,已從 /usr/lib64/clang/17 移到 /usr/lib/clang/17。

4、新的 grafana-selinux 軟體包

在以前的版本中,grafana-server 的預設安裝作為 unconfined_service_t SELinux 型別執行。這個更新新增了新的 grafana-selinux 軟體包,其包含 grafana-server 的 SELinux 策略,並且預設使用 grafana-server 安裝了。因此,grafana-server 現在作為 grafana_t SELinux 型別執行。

5、 更新了 GCC Toolset 13

GCC Toolset 13 是一個編譯器工具集,其提供開發工具的最新版本。它以 AppStream 儲存庫中的 Software Collection 的形式作為 Application Stream 提供。

OC 8.10 中引入的顯著變化包括:

  • GCC 編譯器已更新至版本 13.2.1,它提供了上游 GCC 中可用的很多 bug 修復和增強。
  • binutils 現在透過 -march=znver5 編譯器切換支援基於 znver5 核的 AMD CPU。
  • annobin 已更新至版本 12.32。
  • GCC 的 annobin 外掛現在對儲存在目標檔案的註釋預設使用更壓縮的格式,使目標檔案更小,連結時間更快,特別是在大型複雜的程式中。

GCC Toolset 13 提供了以下工具和版本:

工具 版本
GCC 13.2.1
GDB 12.1
binutils 2.40
dwz 0.14
annobin 12.32

要安裝 GCC Toolset 13,以 root 使用者身份執行以下命令:

yum install gcc-toolset-13

要執行 GCC Toolset 13 中的工具:

$ scl enable gcc-toolset-13 tool

要執行一個 shell 會話,其中 GCC Toolset 13 中的工具版本會覆蓋這些工具的系統版本:

$ scl enable gcc-toolset-13 bash

6、LLVM Toolset rebase 到版本 17.0.6

LLVM Toolset 已更新至版本 17.0.6。

主要改進包括:

  • 不透明指標遷移現已完成。
  • 在中端最佳化中刪除了對傳統通行管理器的支援。

Clang 更改:

  • C++20 協程不再被視為實驗性的。
  • 改進了 std::move 函式的程式碼生成,以及未最佳化構建中類似的程式碼生成。

7、Rust Toolset rebase 到版本 1.75.0

Rust Toolset 已更新至版本 1.75.0。

主要改進包括:

  • 恆定的評估時間現在是無限制的
  • 清理程式 panic 訊息
  • 貨物註冊認證
  • async fn 和特徵中的不透明返回型別

8、Go Toolset rebase 到版本 1.21.0

主要改進包括:

  • 已新增了 min、max 和 clear 內建。
  • 已新增了對配置檔案指導的最佳化的官方支援。
  • 現在,更精確地定義了軟體包初始化順序。
  • 改進了型別延遲。
  • 改進了向後相容性支援。

9、ant rebase 到版本 1.10.9

ant 1.10 模組流已更新至版本 1.10.9。此版本使用提供方類和提供方引數提供對程式碼簽名的支援。

注意:更新的 ant 1.10 模組流僅提供 ant 和 ant-lib 軟體包。與 Ant 相關的剩餘軟體包在不支援的 CodeReady Linux Builder (CRB)儲存庫中的 javapackages-tools 模組中分發,且沒有被更新。

更新的 ant 1.10 模組流中的軟體包無法與 javapackages-tools 模組中的軟體包並行使用。如果要使用與 Ant 相關的軟體包的完整集合,您必須解除安裝 ant 1.10 模組,並禁用它,並安裝 javapackages-tools 模組。

10、新軟體包:maven-openjdk21

maven:3.8 模組流現在包含 maven-openjdk21 子軟體包,它為 OpenJDK 21 提供了 Maven JDK 繫結,並配置了 Maven ,以使用系統 OpenJDK 21。

11、cmake rebase 到版本 3.26

cmake 軟體包已更新至版本 3.26。主要改進包括:

  • 新增了對 C17 和 C18 語言標準的支援。
  • cmake 現在可以查詢作業系統識別資訊的 /etc/os-release 檔案。
  • 新增了對 CUDA 20 和 nvtx3 庫的支援。
  • 新增了對 Python 穩定的應用程式二進位制介面的支援。
  • 在 Simplified Wrapper 和 Interface Generator (SWIG)工具中新增了對 Perl 5 的支援。

七、身份管理

1、ipa rebase 到版本 4.9.13

ipa 軟體包已從 4.9.12 版本更新至 4.9.13。主要變更包括:

  • 現在,IdM 副本的安裝針對所選伺服器進行,不僅用於 Kerberos 身份驗證,也用於所有 IPA API 和 CA 請求。
  • 對於有大量證書的情況,cert-find 命令的效能已顯著提高。
  • ansible-freeipa 軟體包已從版本 1.11 rebase 到 1.12.1。

2、刪除過期的 KCM Kerberos 票據

在以前的版本中,如果您試圖向 Kerberos 憑證管理器(KCM)新增新憑證,且您已達到儲存空間限制,新憑證將被拒絕。使用者儲存空間受 max_uid_ccaches 配置選項的限制,該選項的預設值為 64。

使用此更新,如果您已達到儲存空間限制,您的最早過期的憑證被刪除,新憑證被新增到 KCM 中。如果沒有過期的憑證,操作失敗並返回一個錯誤。要防止這個問題,您可以使用 kdestroy 命令刪除憑證來釋放一些空間。

3、支援本地使用者的 bcrypt 密碼雜湊演算法

使用此更新,您可以為本地使用者啟用 bcrypt 密碼雜湊演算法。要切換到 bcrypt 雜湊演算法:

1、透過將 pam_unix.so sha512 設定更改為 pam_unix.so blowfish 來編輯 /etc/authselect/system-auth 和 /etc/authselect/password-auth 檔案。

2、應用更改:

authselect apply-changes

3、使用 passwd 命令更改使用者的密碼。

4、在 /etc/shadow 檔案中,驗證雜湊演算法是否被設定為 $2b$,表示 bcrypt 密碼雜湊演算法現在被使用。

4、IdM 現在支援 idoverrideuser、idoverridegroup 和 idview Ansible 模組

有了此更新,ansible-freeipa 軟體包包含以下模組:

  • idoverrideuser 允許您為儲存在身份管理(IdM) LDAP 伺服器中的使用者覆蓋使用者屬性,例如,使用者登入名稱、主目錄、證書或 SSH 金鑰。
  • idoverridegroup 允許您為儲存在 IdM LDAP 伺服器中的組覆蓋屬性,例如,組的名稱、其 GID 或描述。
  • idview 允許您組織使用者和組 ID 覆蓋,並將其應用到特定的 IdM 主機。
  • 未來,您將能夠使用這些模組使 AD 使用者能夠使用智慧卡登入到 IdM。

5、ansible-freeipa 中啟用了 DNS 區域管理的委託

現在,您可以使用 dnszone ansible-freeipa 模組來委託 DNS 區域管理。使用 dnszone 模組的 permission 或 managedby 變數來設定每區域訪問委託許可權。

6、ansible-freeipa ipauser 和 ipagroup 模組現在支援一個新的 renamed 狀態

有了此更新,您可以使用 ansible-freeipa ipauser 模組中的 renamed 狀態來更改現有 IdM 使用者的使用者名稱。您還可以在 ansible-freeipa ipagroup 模組中使用此狀態來更改現有 IdM 組的組名稱。

7、runasuser_group 引數現在在 ansible-freeipa ipasudorule 中提供

有了此更新,您可以使用 ansible-freeipa ipasudorule 模組為 sudo 規則設定 RunAs Users 的組。選項已在身份管理(IdM)命令列介面和 IdM Web UI 中提供。

8、389-ds-base rebase 到版本 1.4.3.39

389-ds-base 軟體包已更新至版本 1.4.3.39。

9、HAProxy 協議現在支援 389-ds-base 軟體包

在以前的版本中,目錄伺服器不會區分代理和非代理客戶端之間的進入連線。有了此更新,您可以使用新的 nsslapd-haproxy-trusted-ip 多值配置屬性來配置信任的代理伺服器的列表。當在 cn=config 條目下配置了 nsslapd-haproxy-trusted-ip 時,目錄伺服器透過額外的 TCP 標頭,使用 HAProxy 協議接收客戶端 IP 地址,以便可以正確地評估訪問控制指令(ACI),並可以記錄客戶端流量。

如果一個不信任的代理伺服器發起了一個繫結請求,目錄伺服器會拒絕請求,並將以下資訊記錄到錯誤日誌檔案中:

[time_stamp] conn=5 op=-1 fd=64 Disconnect - Protocol error - Unknown Proxy - P4

10、samba rebase 到版本 4.19.4

samba 軟體包已升級到上游版本 4.19.4,與之前的版本相比,它提供了 bug 修復和增強。最顯著的更改有:

  • smbget 工具中的命令列選項已被重新命名並刪除,以獲得一致的使用者體驗。但是,這可能會破壞現有的指令碼或使用該工具的作業。有關新選項的進一步詳情,請檢視 smbget --help 命令和 smbget (1) 手冊頁。
  • 如果啟用了 winbind debug traceid 選項,則 winbind 服務現在額外記錄以下欄位:
  • traceid :跟蹤屬於同一請求的記錄。
  • depth :跟蹤請求巢狀級別。
  • Samba 不再使用自己的加密實現,現在完全使用 GnuTLS 庫提供的加密功能。
  • directory name cache size 選項被刪除。

請注意,從 Samba 4.11 開始,伺服器訊息塊塊版本 1 (SMB1)協議已被棄用,並將在以後的發行版本中刪除。

在啟動 Samba 前備份資料庫檔案。當 smbd、nmbd 或 winbind 服務啟動時,Samba 會自動更新其 tdb 資料庫檔案。OpencloudOS 不支援降級 tdb 資料庫檔案。

更新 Samba 後,使用 testparm 工具來驗證 /etc/samba/smb.conf 檔案。

八、容器

1、Container Tools 軟體包已更新

現在提供更新的 Container Tools 軟體包,其包括 Podman、Buildah、Skopeo、crun 和 runc 工具。與之前版本相比,重要的程式錯誤修復和增強包括:

Podman v4.9 中的顯著變化:

  • 現在,您可以使用 podman --module <your_module_name> 命令來按需載入模組,並覆蓋系統和使用者配置檔案。
  • 新增了一個新的帶有一組 create,set,remove 和 update 子命令的 podman farm 命令。使用這些命令,您可以將構建分發到為不同架構執行 podman 的機器。
  • 新增了一個新的 podman-compose 命令,它使用外部 compose 提供方,如 Docker compose 來執行 Compose 工作負載。
  • podman build 命令現在支援 --layer-label 和 --cw 選項。
  • podman generate systemd 命令已棄用。使用 Quadlet ,來在 systemd 下執行容器和 pod。
  • podman build 命令現在支援具有 HereDoc 語法的 Containerfiles。
  • podman machine init 和 podman machine set 命令現在支援一個新的 --usb選項。使用這個選項以允許 QEMU 提供方的 USB 透傳。
  • podman kube play 命令現在支援一個新的 --publish-all 選項。使用此選項來公開主機上所有的 containerPorts。

2、Podman 現在支援 containers.conf 模組

您可以使用 Podman 模組來載入一組預先確定的配置。Podman 模組是 Tom 的 Obvious Minimal Language (TOML)格式的 containers.conf 檔案。

這些模組位於以下目錄或其子目錄中:

  • 對於無根使用者:$HOME/.config/containers/containers.conf.modules
  • 對於 root 使用者:/etc/containers/containers.conf.modules,或 /usr/share/containers/containers.conf.modules。

您可以使用 podman --module <your_module_name> 命令按需載入模組,以覆蓋系統和使用者配置檔案。使用模組涉及以下事實:

  • 您可以使用 --module 選項多次指定模組。
  • 如果 <your_module_name> 是絕對路徑,則配置檔案將被直接載入。
  • 相對路徑是相對於前面提到的三個模組目錄而解析的。
  • $HOME 中的模組覆蓋 /etc/ 和 /usr/share/ 目錄中的模組。

3、Containerfile 現在支援多行指令

您可以在 Containerfile 檔案中使用多行 HereDoc 指令(Here 文件表示法)來簡化此檔案,並減少執行多個 RUN 指令導致的映象層數。

例如,原始的 Containerfile 可以包含以下 RUN 指令:

RUN dnf updateRUN dnf -y install golangRUN dnf -y install java

您可以使用 HereDoc 表示法,而不是多個 RUN 指令:

RUN <<EOFdnf updatednf -y install golangdnf -y install javaEOF

下載使用並參與社群共建

下載安裝

可在下方連結中下載安裝 OpenCloudOS 8.10:

https://mirrors.opencloudos.tech/opencloudos/8.10/

使用 OpenCloudOS 發行版本遇到和任何問題,誠摯歡迎社群的使用者、開發者朋友多提寶貴建議。

所有 OpenCloudOS 8 的原始碼均託管在 Gitee:

https://gitee.com/src-opencloudos-rpms

https://gitee.com/src-opencloudos-modules

相關文章