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 选项使用这个选项,例如:
代码语言:txt复制$ 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 堆栈安装软件包,请使用,例如:
代码语言:txt复制yum install python3.12yum install python3.12-pip
要运行解释器,请使用,例如:
代码语言:txt复制$ python3.12$ python3.12 -m pip --help
2、Python 中的一个控制电子邮件地址解析的新环境变量
为缓解 CVE-2023-27043 向后兼容的更改,以确保在 Python 3 中引入了更严格的电子邮件地址的解析。
此更新引入了一个新的 PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING 环境变量。当您将此变量设置为 true 时,以前的、不太严格的解析行为是整个系统的默认设置:
代码语言:txt复制export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true
但是,对受影响函数的单个调用可能仍然启用更严格的行为。
您可以通过使用以下内容创建 /etc/python/email.cfg 配置文件来取得相同的结果:
代码语言:txt复制[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 模块流,请使用:
代码语言:txt复制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 模块流,请使用以下命令:
代码语言:txt复制yum module install php:8.2
如果要从以前的 PHP 流升级,可使用
代码语言:txt复制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 现在支持 $proxyprotocol_tlv* 变量,其存储出现在 PROXY v2 TLV 协议中的 Type-Length-Value (TLV)字段的值。
- ngx_http_gzip_static_module 模块现在支持字节范围。
其他更改:
- 标头行现在在内部 API 中表示为链接列表。
- nginx 现在在 ngxhttp_perl_module 的 $r->header_in() 方法中和查找 $http..., $senthttp..., $senttrailer..., $upstreamhttp... 和 $upstreamtrailer.. 变量的过程中连接传递给 FastCGI、SCGI 和 uwsgi 后端的相同名称的头字符串。
- 如果重新定义侦听套接字的协议参数,Nginx 现在会显示一个警告。
- 如果管道被客户端使用了,则 Nginx 现在关闭与 lingering 的连接。
- 各种 SSL 错误的日志记录级别已降低,例如从 Critical 降到 Informational。
要安装 Nginx 1.24 流,请使用:
代码语言:txt复制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 流,请使用:
代码语言:txt复制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 流,请使用以下命令:
代码语言:txt复制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=<file> <revision> -- <path> 命令,来通过指向 <revision> 的历史记录查找在 <file> 内容开始的行的源。
- 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_ctu_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 用户身份运行以下命令:
代码语言:txt复制yum install gcc-toolset-13
要运行 GCC Toolset 13 中的工具:
代码语言:txt复制$ scl enable gcc-toolset-13 tool
要运行一个 shell 会话,其中 GCC Toolset 13 中的工具版本会覆盖这些工具的系统版本:
代码语言:txt复制$ 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、应用更改:
代码语言:txt复制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),并可以记录客户端流量。
如果一个不信任的代理服务器发起了一个绑定请求,目录服务器会拒绝请求,并将以下信息记录到错误日志文件中:
代码语言:txt复制[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 指令:
代码语言:txt复制RUN dnf updateRUN dnf -y install golangRUN dnf -y install java
您可以使用 HereDoc 表示法,而不是多个 RUN 指令:
代码语言:txt复制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