近年来,Rust重构的热潮迅速席卷整个开发圈。作为一颗日渐兴起的新星,与其他编程语言相比,Rust在安全性、高效性和可维护性等方面都展现出明显的优势。因此,越来越多的大型项目和关键系统纷纷选择采用Rust进行代码改写和重构。
值得期待的是,统信UOS服务器版将于不久后推出Rust版Bash,名为utshell,旨在突破传统Shell所面临的安全局限,构建一个更具创新性和竞争力的操作系统。
6月初,统信UOS服务器版V20(1060)隆重推出,不仅带来了突破性的功能和性能提升,还集成了utshell的部分功能,为即将发布的完整版utshell提供了初步体验。
为了推动自主操作系统的生态建设,统信UOS始终拥抱开源、贡献开源。此次,统信UOS已将utshell的前期成果同步到了deepin、欧拉和龙蜥社区。
欢迎下载和体验,同时也衷心期待更多感兴趣的朋友加入我们,与我们一同建立更加繁荣的自主操作系统生态。
deepin社区地址:
https://github.com/linuxdeepin/utshell
欧拉社区地址:
https://gitee.com/openeuler/utshell
龙蜥社区地址:
https://gitee.com/anolis/utshell
经过Rust重构和安全补丁的引入,utshell已成为一个更安全、更强大的Shell程序,为Unix和Linux系统的用户提供了更加可靠且高效的运行环境。
在Bash中,有一些命令没有对参数进行防篡改检查,因而给系统带来了安全风险。
例如,alias命令允许用户为其他命令或命令序列创建别名,然而它并未对参数进行防篡改检查,进而导致未经检查的参数可能会被利用来执行恶意代码或进行未经授权的操作
为了应对上述问题,utshell对alias命令的规则进行了全面详细的明确界定,目的在于确保使用的便捷性,并且能够有效地防止命令被恶意篡改,从而限制恶意行为或误操作的发生。这一举措不仅可以确保系统的安全性,还能提升用户体验。
当别名和$PATH下可执行文件重名时,只允许别名和可执行文件一致。例如,如果我们想要创建一个别名“ls”,那么与之对应的可执行命令也必须是“ls”,且允许在命令中添加参数,以便用户可以根据自己的需求对命令进行个性化制定。
别名不能与其他别名、函数名称发生重名,以避免在使用别名时出现二义性,进而更好地确保操作系统能够正确理解用户的指令,避免混淆和误解。
当然,不仅仅限于alias命令,utshell还对所有命令进行了详尽检查,并对那些可能受到恶意篡改威胁的命令进行了规则的优化处理,如hash和function命令等。
在Bash中,mapfile命令是用于对数组进行赋值的工具,但它并没有对数组的越界情况进行有效的检查和控制。当用户输入的参数数量超过数组容量时,溢出部分可能会被误当作命令来执行,从而引发潜在的安全隐患。
为了避免上述情况的发生,utshell采取了对数组边界的判断措施。这一举措不仅能有效避免数组越界错误的发生,还能预先制定一些安全措施。
例如,当传入的参数过多时,自动截断或给出警示等,从而保证只有合法、预期的参数才能被传递给mapfile命令。
通过使用Rust重构Bash,utshell不仅能继承Rust独特的“源生”安全性,还能在代码层面实现更高的自主可控性,从而极大地提升了系统的安全性和可靠性。
“源生”安全是将安全元素融入系统的整个生命周期中,能够有效预防安全漏洞和攻击,是保障系统安全的重要手段。
代码自主可控,意味着能够完全自主地控制和管理utshell内部的代码逻辑和执行过程,使得我们能够更加灵活地定制和优化代码,从而提升脚本的执行效果和开发体验。
Bash是一种广泛应用于各种Unix和Linux系统的Shell程序,同时属于统信UOS分层分类设计方案的核心层,其安全性和稳定性至关重要。
Tips:分层分类的核心思想是“垂直分层、水平分类、数据驱动、算法先行”,旨在实现操作系统软件供应链的自动化管理。它结合了人工智能技术,能够随着统信UOS的不断演进,对新增或更新的软件包实现自动识别,以及智能分层和分类。
更多详情,请查看全球首创「分层分类」理论!统信UOS探索下一代操作系统开发基础
使用Rust重构Bash后,不仅能够更好地满足现代化的需求和挑战,还可以最大限度地预防用户操作和软件缺陷导致的软件健壮性和用户安全问题。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!