像ubuntu这样的系统,默认是没有root密码的。如果需要使用特权,可以使用sudo临时切换到root状态。还有许多其他的系统,同样存在类似的情况。

以两个活生生的例子来说明没有root密码的悲剧:

  1. 这篇文章 讲述了无意中改变/usr/bin/sudo的权限,因为没有root密码,导致了解决极其复杂;
  2. 近期将博客迁移到 AWS 上,选择了默认的CentOS作为操作系统。在一顿初始化,安装更新之后,再次连接上发现无法切换到root状态了!猛然想起来近期的bash漏洞,更新之后导致了sudo命令已经不存在。之前ec2-user因为是wheel组用户,可以使用 sudo -i 命令进入root状态。更新了之后sudo命令都不存在了,也没有设置root密码,也没有开启root免密码登陆。无奈之下只好删除实例再创建一个,又是一顿折腾。

经过这几次的折腾,发现应该尽可能的为root创建密码,以免其他用户无法切换到root状态。如果不是云服务器,centos, fedora之类的操作系统默认是要设置root密码的。对于网络操作系统,可能是默认禁止root登陆。为了避免和我一样悲剧的发生,还是建议你尽早设置root密码。