It is very easy to add users by hand, but sometimes such actions needs to be automated.

Generate password

The first thing to know is how to generate password using MD5-based algorithm beforehand.

Nothing more then openssl utility is required.

$ openssl passwd -1 "password-string"
$1$CgeyJuTw$DVasTHeH9D01C79lEj9i9.

Check output of the openssl passwd --help command for additional information.

$ openssl passwd --help
Usage: passwd [options] [passwords]
where options are
-crypt             standard Unix password algorithm (default)
-1                 MD5-based password algorithm
-apr1              MD5-based password algorithm, Apache variant
-salt string       use provided salt
-in file           read passwords from file
-stdin             read passwords from stdin
-noverify          never verify when reading password from terminal
-quiet             no warnings
-table             format output as table
-reverse           switch table columns

Create user without disclosing password

You can add new user inside custom shell script using hashed password.

user_password="$1$CgeyJuTw$DVasTHeH9D01C79lEj9i9."
[...]
useradd regularuser11 --create-home --password "$user_password" --shell /bin/bash --uid 5011 --user-group

Create user with disclosed password

Alternatively, you can generate password while adding new user without bothering about its security.

useradd regularuser12 --create-home --password "$(openssl passwd -1 "regularuser12-password")" --shell /bin/bash --uid 5012 --user-group

Additional notes

This is a simple solution, which is ideal for initial system configuration.

ko-fi