I use the following command to create a user in a linux machine:
useradd -d /home/dummy -g idiots -m -p 12345689 dummy
The user is created and the home directory as well.
The problem is that I can not log-in to the system using this account since the -p
expects the encrypted password returned by crypto
.
Question:I want to create a user via a bash script and I don't know the encrypted password by crypto
. How can I do it so that I am able to create this user automatically via a script and get arround the problem with the password?
You can use openssl to generate pre encrypted password strings to use with the -p option to useradd
The
-1
says to generate a MD5 password hash. The salt is automatically generated.You can then use
to add the user. To do this interactively hiding the password
Apparently, you can use
I've never tried this.
Alternatively, you could put the user's public key in
/home/dummy/.ssh/authorized_keys
and forget about passwords entirely. This is the best option security-wise.That`s how I do it:
As you are going to use a bash script, perhaps the good old
newusers
command would be helpful to you? It reads its input from a text file formatted like this:And the password in that file should be clear text. You can list as many users as you wish in the input file.
For more information see
man newusers
.