How to create Random password quickly in Linux?

Some times when creating bulk users, admins are forced to create complex passwords. But how to do it? How many you can set manually? Let me put it in this way. For one or two users we can think for a random password and assign to them. But if it’s 100 users? Naaa.. I cannot think for 100 passwds.

So leave this job to Linux to create random passwords. We can use below command to generate random passwords

< /dev/urandom tr -dc A-Na-n1-9_ | head -c8

This will just generate random 8 lenght password

For example :
See just typing the above command will generate a random password

root@ps6061:~# < /dev/urandom tr -dc A-Na-n1-9_ | head -c8

57fg67gK

root@ps6061:~# < /dev/urandom tr -dc A-Na-n1-9_ | head -c8

FN8ahe8b

root@ps6061:~# < /dev/urandom tr -dc A-Na-n1-9_ | head -c8

eLhLLNCG

root@ps6061:~# < /dev/urandom tr -dc A-Na-n1-9_ | head -c8

FK3CC9GN

root@ps6061:~# < /dev/urandom tr -dc A-Na-n1-9_ | head -c8

cA8H24Ml

root@ps6061:~# < /dev/urandom tr -dc A-Na-n1-9_  | head -c8

9eDL39I_

root@ps6061:~#

Here is a script automate entire 20 user account creation.
#!/bin/bash
#Author:Surendra Kumar Anne
#Purpose:To automate user creation
#Date/Time:29-01-2010.19:10
mkdir -p /home/admin/useraccounts
for (( i=0; i<=20; i++ ))

do

useradd user$i< /dev/urandom tr -dc A-Na-n1-9_ | head -c8 > /tmp/passwd.txt
cat /tmp/passwd.txt | passwd –stdin user$i
echo -e “Username:user$i” > /home/admin/useraccounts/user$i
echo -e “password:” >> /home/admin/useraccounts/user$i
cat /tmp/passwd.txt >> /home/admin/useraccounts/user$i
done
rm -rf /tmp/passwd.txt

Note : When password generating we have just created a password which will not contain o(small ooo), O(capital OO), 0(zero). This is to remove confusions for users. Some times user will get confusion when using these characters. If you want all the characters from a to z, A to Z, and 0-9 just use below code.

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