在Linux中执行一些操作可能需要root用户才有权限操作,可使用su命令切换到root,输入su命令并回车,此时会要求输入root用户的密码,如果密码正确即可切换成功,在我的Ubuntu虚拟机上,提示我认证失败,如下:
在这里插入图片描述
这有可能是在安装Ubuntu系统的时候没有设置root账号的密码,可以使用sudo passwd root命令来设置root账号的密码,密码设置好就可以使用su命令来切换到root账号了,如下:
在这里插入图片描述

不需要设置root密码也能切换到root,如下:
在这里插入图片描述
如上图,执行sudo su - root命令后会要求输入密码,此时输入当前用户的密码即可(非root密码)。

某一天,我现了另一个更简单的切换到root用户的方式,还了解到为什么不要使用root用户进行登录。我在wsl中启动ubuntu,它给了我这样一个提示,如下:
在这里插入图片描述
这里提示说要以系统管理员用户来运行一个命令,可以使用sudo <command>。还告诉我们运行man sudo_root命令可以查看详情,于是我就运行这个命令看一下,如下:
在这里插入图片描述
用有道词典翻译了一下,大概内容如下:

  • 默认情况下,“root” (系统管理员)用户的密码是锁定的,这意味着你无法使用rootsu登录。代替的,安装程序将设置sudo以允许在安装过程中创建的用户可以运行所有的系统管理员权限命令。比如我在wsl中安装ubuntu时创建了一个用户叫even,则even用户可以使用sudo来执行管理员权限,在后面创建的其它用户则无法使用sudo(经过设置还是可以使用sudo的,这个在man sudo_root帮助界面上也有告诉我们如何设置)
  • sudo command会提示我们输入密码,就输入当前用户的密码即可,这意味着root用户的密码是不需要的。
  • 如果想要获得一个交互式的root shell,使用sudo -i,也就是说使用这个命令就能切换到root用户下了,当然了,它也会提示你要输入当前用户的密码。

为什么安装Linux系统时创建的用户权限这么大?因为安装时创建的用户肯定是系统所有者,可以认为是系统管理员了,所以权限比较大,不需要root密码即可使用root权限。而锁定root用户的密码是为了安全,这样别人就无法远程使用root来登录你的Linux了,而你创建的用户,只要你不把用户名告诉别人,别人就无法知道,但是root这个用户名是人人都知道的,容易被用来登录,虽然别人不知道密码,但是可以使用暴力破解之类的,特别是有些人喜欢用简单的密码,比如123456,所以锁定root的密码是比较安全的。即使我创建的用户密码是123456,别人能猜到我的密码,但是他不一定知道我创建的用户名是什么。

所以,最终总结一下就是,我们不需要root用户的密码,也不要去设置root用户的密码。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐