有时候我们从网上下载的共有镜像,需要修改密码,可以通过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可以做很多事:删除文件等