现在虚拟机kvm的使用很流行,为了更多的差异化环境,每个人可能拥有很多的kvm,这数量一多难免会有image的密码会忘记,相信很多人会采用kernel single user 单用户模式进入系统修改秘密,但是,自从rhel7和ubuntu14.04以后,都加了认证,进入单用户后,还需要密码,这的确增加了安全性。下面就简单介绍一下通过libguestfs-tools这个工具直接修改image中的文件,无需启动kvm。
查看kvm list
# virsh list --all
Id Name State
----------------------------------------------------
- rhel7.0 shut off
- rhel7.0-cloud shut off
- ub12-clear shut off
- ub14.04-clear shut off
- ub14.04-clear-clone shut off
- ubuntu14.04 shut off
rhel7.0 这个就是我需要修改密码的kvm
安装libguestfs-tools
sudo yum install libguestfs-tools # Fedora/RHEL/CentOS
sudo apt-get install libguestfs-tools # Debian/Ubuntu
安装完成后会增加很多virt命令,这次我们主要使用virt-edit
生成新的密码串
# openssl passwd -1 -salt 'hello' '123456'
$1$hello$ZwmhCpcG.I1XIfVjdarKc1
openssl是一个加密工具,-1 是指普通加密,hello为key , 123456 才是密码,下面就是是生成的密码串,这样我们只要将这些进行对应的替换酒可以了
linux系统的加密密码通常存储在/etc/shadow 文件中
root:$1$bTPRDWwf$LpjUZmGTHw.hYFccl0/lK.:16804:0:99999:7:::
bin:*:15937:0:99999:7:::
daemon:*:15937:0:99999:7:::
adm:*:15937:0:99999:7:::
lp:*:15937:0:99999:7:::
sync:*:15937:0:99999:7:::
shutdown:*:15937:0:99999:7:::
修改系统root账户密码
virt-edit -d rhel7.0 /etc/shadow
视kvm image大小情况而定,一般一两分钟就可以打开,我们只要替换root中的对应部分酒可以
root:$1$bTPRDWwf$LpjUZmGTHw.hYFccl0/lK.:16804:0:99999:7:::
更换为
root:$1$hello$ZwmhCpcG.I1XIfVjdarKc1:16541:0:99999:7:::
保存退出,启动kvm,就可以用最新的密码进入了,当前最新密码是123456