How to add a linux user in single line?

Is there any option to add a user in single line. it includes the password. Dont prompt anything.

OS=RHEL 5.5


You can use useradd to set everything including the password. The password must be encrypted already, but you can use openssl to make the md5 password if you want to just specify the plain text password:

useradd -u 12345 -g users -d /home/username -s /bin/bash -p $(echo mypasswd | openssl passwd -1 -stdin) username

You may want to exclude this from your history, though, if you are using a plaintext password in the command. You can prepend a space before the command to exclude it from history. If you are running this command on a lot of machines, you may just want to generate the password once and use it in the command directly:

useradd -u 12345 -g users -d /home/username -s /bin/bash -p '$1$NNfXfoym$Eos.OG6sFMGE8U6ImwBqT1' username

You should be able to use something like this:

adduser --uid 3434 --password my_password my_login

It looks that useradd will encrypt the password with crypt. If you'd rather use other method (MD5, SHA256, SHA512), you can create the user with useradd and set the password with chpasswd, You can run:

useradd <options> && echo username:password | chpasswd --crypt-method=SHA512

Your system-wide default password encryption method is set in /etc/login.defs in variable ENCRYPT_METHOD. && causes chpasswd to run only if user creation with useradd was successful (exit code of 0)


A late arrival to the game - RHEL 7.1 - the following thing works. Creates a SUDO user, does not encrypt password, and immediately logs in as the new user:

U=youzerneim; P="pswrd"; adduser $U; echo $P | passwd $U --stdin; usermod -aG wheel $U; su - $U