Linux / UNIX: Generating random password with mkpasswd

by Vivek Gite · 3 comments

Q. How do I generate random password to use with my shell script?

A. You can use makepasswd or mkpasswd command to generate random password under Linux / UNIX.

mkpasswd command is overfeatured front end to crypt(3) function. makepasswd command generates true random passwords by using the /dev/random feature of Linux, with the emphasis on security over pronounceability. It can also encrypt plaintext passwords given on the command line.

Install makepasswd

Type the following command at shell prompt:
$ sudo apt-get install makepasswd

How do I generate random password with mkpasswd?

Just type mkpasswd and hit enter key:
$ mkpasswd
Output:

Password: type-Your-Password
/o88/D4SvLix2

Store password in a shell variable, enter:
RPASS=$(makepasswd --char=10)
echo $RPASS

Above will generate passwords with exactly 10 characters long. To produce encrypted passwords using the MD5 digest (hash), enter:
$ makepasswd --char=10 --crypt-md5

You can write a script as follows:

#!/bin/bash
# ... do something
userPassword=$(makepasswd --char=8)
# ... do with $userPassword
echo $userPassword
# ...

Featured Articles:

Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!

{ 3 comments… read them below or add one }

1 Slavko 11.11.07 at 12:27 pm

apt-get install makepasswd

2 Gen2ly 08.28.09 at 1:36 pm

To generate a random password for a user, you can do:

usermod -p `mkpasswd –chars=20` username

Also there char should be chars. Thanks for the tip.

3 Dave 09.17.09 at 3:26 pm

Another handy way of generating random passwords is this:

echo `</dev/urandom tr -dc A-Za-z0-9 | head -c8`

Obviously, this can be tweaked to your liking by adding symbols to the list of allowed characters and changing the length of the generated password in the head options. You can also use /dev/random if you want proper randomness but that does make it a whole lot slower.

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Previous FAQ:

Next FAQ:

nixCraft FAQ PDF Collection Now Available To All