有时从网上下载的虚拟机镜像,没有root密码,必须通过秘钥登录,然后秘钥又需要麻烦的注入到里面去。想用,却无法登录,很头痛。本文提供一种通过修改虚拟机镜像里面的/etc/shadow文件,来设置镜像的root密码,当然也可以修改其它用户的密码。
本文使用python-guestfs类库来操作虚拟机镜像,所以请安装python-guestfs及相关包。ubuntu系统执行:
sudo apt-get install python-guestfs
centos系统请执行:
sudo yum install python-libguestfs
给指定密码生成加密过后的密码:
def encrypt_passwd(admin_passwd):
algos = {'SHA-512': '$6$', 'SHA-256': '$5$', 'MD5': '$1$', 'DES': ''}
salt_set = ('abcdefghijklmnopqrstuvwxyz'
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'