前几天,使用Xubuntu Linux的时候,就发现系统很多命令,都在被切换成Rust语言的实现版本。Linux系统中,各个组件都在积极地拥抱Rust语言。Rust语言在内存安全方面,尤其出众,因此被当做一般场景下对C/C++语言的替代使用。连Linux内核也已经对Rust语言,做了很多支持,引入其编写的组件程序。Rust语言的优秀,不仅让Linux开始接受,Windows也在使用。很多Windows上驱动和内核相关的组件,在用Rust重写,甚至有人说,几年后Windows会全面使用Rust语言。接下来即将问世的Ubuntu Linux 26.04版本,对一个40多年没有变动的命令sudo,做出了Rust语言的实现版本,而且还给到了一项改进。sudo命令对于大多数Ubuntu Linux用户也许并不陌生。已经有很长时间,Ubuntu Linux默认安装时就会提示创建一个非root的用户,用于登录和一般作为管理员角色进行使用。而这个用户在Ubuntu Linux中,执行需要root权限的命令时,就可以非常方便的借助sudo命令。在命令前加一个sudo,就能让用户启动的命令得到root权限。sudo apt update sudo apt upgrade
这个命令不是Ubuntu Linux独有的,是其他Linux发行版上也可以使用的,比如Fedora Linux等,只不过其他的Linux发行版并没有大力推荐这个软件命令的应用。或许那些Linux发行版觉得,可以执行sudo的管理员和root用户区别并不明显。说回到sudo命令的使用上,一般来讲,如果没有在配置文件中为当前的sudo用户做额外的定义,比如无须密码就能运行,那么sudo命令执行是需要密码的。在Ubuntu Linux以往的版本中,当需要使用sudo时,提示用户输入密码,输入的界面是没有反馈的,也就是看不到关于密码的任何细节显示。Ubuntu Linux 26.04版本中,sudo的Rust语言实现版本有了改进,如果你使用sudo执行一个命令,并输入密码,是可以看到一个个小星号*。如果输入有误的时候,可以删除再次输入。以前,开发者认为在输入密码时,不去显示密码相关的标识,是更加安全的做法。至少不会透露Linux系统用户的密码长度。如今在使用sudo的时候,显示输入密码的长度,也就是*的个数,开发者对此怎么看?有评论说,由于sudo命令的密码往往就是用户的密码,在用户登录界面输入密码时,也会出现对应的占位符圆点。因此在已经登录好的终端执行命令时,用不反馈用户的sudo密码输入来隐藏密码长度,无异于掩耳盗铃。而显示出密码输入的反馈,则极大方便了普通用户的使用体验。