【VMware vCenter】在不重启的情况下重置vCenter Server的root密码。
VMware 提供了一种方法,可以在不用重新启动vCenter Server进入grub引导至单用户模式的情况下重置root的密码,这种方法使用的是通过SSO管理员账号(administrator@vsphere.local)登录到vCenter Server的VAMI管理界面,在右上角的操作菜单里提供更改root用户密码的选项。
但是,上述方法仅适用于vCenter Server 7.0及之后版本,如果是更早的vCenter Server 6.7的版本,则可以通过shell进行修改。从vCenter Server 6.7 U1开始,隶属于SystemConfiguration.BashShellAdministrators组的SSO用户将能够登录到Bash shell,并使用sudo调用任何命令而不需要输入密码。因此,我们可以使用SSO管理员账户登录shell直接修改root的密码。当然,通过shell修改的方法也适用于所有6.7之后的版本,如果是6.7之前的版本,可能还是需要重启进入单用户模式重置。从下图可以看到,SSO管理员账户隶属该组。
使用SSO管理员用户以SSH登录vCenter命令行,运行以下命令开启bash shell并进入shell。
shell.set --enable true
shell
使用sso-user身份进入shell后,运行以下命令直接更改root用户的密码。
sudo passwd root
重置密码后你可以使用新的root密码登录vCenter Server VAMI管理后台以及bash shell命令行。
如果vCenter root用户被锁定,可以通过SSO管理员账户(administrator@vsphere.local)登录shell使用以下命令进行解锁。
对于vCenter Server 8.0 U2之前的版本,请使用pam_tally2命令进行解锁。
sudo pam_tally2 --user root --reset
对于vCenter Server 8.0 U2及之后的版本,请使用faillock命令进行解锁。pam_tally2在Photon OS 4中已弃用,vCenter 8.0 U2使用了Photon OS 4。
sudo /usr/sbin/faillock --user root --reset
注意,上述方法使用了SSO用户,如果同时忘记root和SSO用户密码,那请重启vCenter进入单用户模式重置root密码后再通过shell重置SSO用户密码。