password does not work with useradd -p
From man useradd
:
-p, --password PASSWORD
The encrypted password, as returned by crypt(3). The default is to disable the password.
As you can see the PASSWORD
with -p
option is the encrypted password returned by the crypt(3)
library function.
If you use -p password1
, the system will consider this plain text password1
as the encrypted shadow password entry in /etc/shadow
.
The solution is to use the encrypted password here with -p
which is unsafe, you should set the password interactively.
For example create the suer first :
sudo useradd -m -s /bin/bash guest_user
Now set the password :
sudo passwd guest_user
Or better use adduser
instead :
sudo adduser --gecos '' guest_user
You can use perl
to print the encrypted password and use it with -p
option in useradd
command.
$ sudo useradd -m -p $(perl -e 'print crypt($ARGV[0], "password")' 'YOUR_PASSWORD') username
You also can use it with other options like -s
for Shell or -d
for home directory.
Try adding an argument after each option you want to use. For example:
useradd -m guest_user -p passwd1
As the useradd man page suggests, adding your password in this way is not considered secure because it is transmitted in plain text. For an alternative, try:
sudo useradd -m guest_user
and then:
sudo passwd guest_user
Two caveats:
the line that begins with: NAME_REGEX= in: /etc/adduser.conf may prohibit the use of the underscore "_" character for usernames;
there may be password complexity requirements set in: /etc/pam.d/common-password which require a more complex password.