openstack-镜像-密码-修改-guestfish

有时候我们从网上下载的共有镜像,需要修改密码,可以通过guestfish很简单的就能够实现

软件安装

1
2
3
4
5
## Centos7:
# yum -y install guestfish
## ubuntu
# yum -y install libguestfs-tools

升级加密密码

1
2
# openssl passwd -1 PASSWORD # 这里把 PASSWORD 替换为自己想要设置的密码
$1$/jCcCUMM$rU8XqMS6kVuZ7zxn.PQCs. # 生成的加密密码,会写入到镜像中

挂载镜像并修改密码

1
2
3
4
5
6
7
# guestfish --rw -a /root/CentOS-7.2-1511.img
><fs> ## 提示符变成了这样,进入了 guestfish 会话
><fs> run ## 它会启动一个虚拟机,用于完成我们所以的对文件的操作
><fs> list-filesystems ## 通过list-filesystems命令,我们可查看镜像内的文件系统列表:
/dev/vda1: xfs
><fs> mount /dev/vda1 / ## 挂载上述分区
><fs> vi /etc/shadow ## 把前面通过openssl 生成的加密密码替换root后面的密码

vi /etc/shadow:

1
2
3
4
root:$1$TwYla0akghaspfkshg98shdlknlksgsahsghlsklksjlkjk::0:99999:7:::
...
...
...

把从 root:::0: 之间的字符替换:

1
2
3
4
root:$1$/jCcCUMM$rU8XqMS6kVuZ7zxn.PQCs.::0:99999:7:::
...
...
...

这样root的密码就替换为新密码

1
><fs> quit ## 退出

然后上传该镜像即可(glance image-create –disk-format raw –visibility public –container-format bare –name CentOS7.2-1511-base-v1.0 –file CentOS-7.2-1511.img –progress)

其实guestfish可以做很多事:删除文件等