Is there any option to add a user in single line. it includes the password. Dont prompt anything.
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
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
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.
chpasswd to run only if user creation with
useradd was successful (exit code of 0)