linux管理员在接管新服务器的时候,有一个常见的问题就是root密码的重置。如root密码长时间不用,或者接管一个陌生的服务器,需要用到单用户模式来重置root的密码。
以下内容是虚拟机VMware11下的centos 6.6版本的介绍:
一、单用户模式修改root密码:
1. 开机显示3s内按任意键,进入选择模式,随便按一个键:
2. 根据提示,点字母e进入编辑模式。
3. 光标选中第二项,再点字母e。
4. 进入编辑模式,在最后面加空格,输入1 、s 、S都可以,然后点击回车。再根据后续的提示点击字母b启动。
5. 启动后的界面是这样的,不需要输入密码,直接进入了主机下面。输入命令passwd,即可修改root的密码了。
遗憾的是,这个方法只能在本地服务器进行设置,云服务器由于是ssh登录,一旦reboot,自动与远端断开连接,无法实现这一操作。不过云服务器有很方便的重置密码的服务,这个问题就自然不难了。
二、grub密码的设置
有了单用户模式,那root密码的意义就不是很大了。那么怎么才能保证本地服务器root的密码不能随意被改动呢?下面介绍设置grub密码的方法,来给单用户等模式加一层防护,达到保护root密码的作用。
1. 明文加密
# vim /etc/grub.conf
在hiddenmenu下面添加一行:password=hhhggg。
这样重启的时候,在3s内按e,会出现下面的提示:
必须要输入上面设定的hhhggg密码,才能进入下一步的单用户模式界面。这样比以前的方式要安全了许多。然而,明文密码毕竟还是不安全的,下面就介绍一下加密的密码方式来设置grub的密码。
2. 加密方式设置grub密码:
# man grub-crypt
可见有常用的3种方式来生成密钥。我们试一种,其他的方法同样适用。
输入命令:
输入两遍密码,只要密码一致,生成一段密码文件。建议在ssh登录工具上面生成,因为可以复制。
编辑/etc/grub.conf,将原来的明文密码改成现在的密文密码,等号去掉,后面跟密码生成的格式。
保存后,重启的时候,再进行操作就会提示需要输入密码才能进入grub。
其实,只要root密码泄露了以后,这些都是可以改的,所以,这些不是安全的最终要素。安全起见,root用户谨慎登录,密码不要用文件存放在自己的目录下面。平常不需要root权限的时候,以普通用户登录即可。
三、救援模式
当一台新的本地服务器,root密码不知道,grub又设置了密码的时候,怎么才能破解密码呢?这时候,我们用到了救援模式,它和windows的PE系统差不多,是一个内存系统。下面介绍的是vmware上面的操作方法。
1. 首先关闭linux系统,在电源选项里面选择最下面的:开机进入计算机硬件设置或者是bios相关的内容,vm的版本不同,显示的内容也不相同,但意思是一样的。
2. 选择cd-rom选项。用减号把其余选项下移,最终将它弄到第一位,F10重启。
3. 选择第三个,回车。
4. 默认点回车。关于显示语言,汉语不支持,选英语吧。
5. 默认回车,键盘的布局,常用美式键盘us。
6. 是否上网,改密不需要,tab键切换,选no。
7. 挂载的格式,默认就好,continue。
8. 提示我们原来的系统将被挂载到/mnt/sysimage下面,而我们可以用chroot /mnt/sysimage命令来切换到我们原来的系统,进行相关的密码修改操作。
9. 默认ok。
10. 默认光标在第一个,ok即可进入shell。
11. 下面是shell界面
12. # ls命令可以进入救援模式的目录。
13. 如想浏览原来系统的目录,可以cd /mnt/sysimage下面,然后可以进行相关操作。
14. 重头戏,修改密码。执行上面提到的chroot /mnt/sysimage, 用passwd命令就能执行密码修改的操作了。
看来,只要是接触了服务器硬件,任何密码都是不靠谱的。还是认真管理机房吧,闲杂人等不允许随便踏入,机房是运维工作人员的天下。哈哈哈。。。