Manually generate password for /etc/shadow
I need to manually edit /etc/shadow
to change the root password inside of a virtual machine image.
Is there a command-line tool that takes a password and generates an /etc/shadow
compatible password hash on standard out?
Best Answer
You can use the following commands for the same
Method 1 (md5, sha256, sha512)
openssl passwd -6 -salt xyz yourpass
Note: passing -1
will generate an MD5 password, -5
a SHA256 and -6
SHA512 (recommended)
Method 2 (md5, sha256, sha512)
mkpasswd --method=SHA-512 --stdin
The option --method
accepts md5
, sha-256
and sha-512
Method 3 (des, md5, sha256, sha512)
As @tink suggested, we can update the password using chpasswd
using.
echo "username:password" | chpasswd
Or you can use the encrypted password with chpasswd
. We'll first create it using this
perl -e 'print crypt("YourPasswd", "salt", "sha512"),"\n"'
Then later you can use the generated password to update /etc/shadow
.
echo "username:encryptedPassWd" | chpasswd -e
The encrypted password we can also use to create a new user with this password, for example.
useradd -p 'encryptedPassWd' username