Password in baremetal-deploy

Just sharing…

Recently ran baremetal-deploy and was unable to login to the resulting Ubuntu image and had to manually clear out the password from /etc/shadow.

I then realized the password I supplied contained a ! character … if my memory serves me right I’ve seen this confuse deployments on other Linux distros because the ! acts as a sort of escape sequence and isn’t passed properly to /bin/passwd by the shell.

So I suspect this was the issue just fair warning if your provisioning passwords contain special characters you may find yourself locked out.

Thanks for reporting!

The root of the problem appears to be sanitization/quoting of the arguments passed to the run-manipulator tool (which is responsible for generating a cloud-init file + any other steps needed to get an OS working nicely on a Ten64)

As it turns out, the sanitization/quoting of the arguments (utils.quote_arg) isn’t necessary as the command isn’t being invoked via the shell, but directly through an fork+exec call.

So in effect the generated cloud-config had password: 'password!' instead of just password: password!

The recovery firmware is due for an update so I’ll address this soon.