密码不适用于useradd -p

我正在运行ubuntu 14.04 LTS。 我运行以下命令来创建用户

$sudo useradd -m -p password1 guest_user 

然后尝试切换到用户

 $su guest_user 

但我无法使用password1登录

我错过了什么吗? 我想使用password1或其他东西登录为-p选项在useradd的手册页中说

  -p, --password PASSWORD The encrypted password, as returned by crypt(3). The default is to disable the password. Note: This option is not recommended because the password (or encrypted password) will be visible by users listing the processes. You should make sure the password respects the system's password policy. 

以上这些让我感到困惑,因为当我输入命令时

useradd -m -p password1

密码password1在命令行中可见。 如何在上面的命令中使它不可见?

来自man useradd

 -p, --password PASSWORD The encrypted password, as returned by crypt(3). The default is to disable the password. 

正如您所看到的,带有-p选项的PASSWORDcrypt(3)库函数返回的加密密码。

如果使用-p password1 ,系统会将此纯文本password1视为/etc/shadow的加密影子密码条目。

解决方案是使用加密密码和-p这是不安全的 ,你应该交互设置密码。

例如,首先创建suer:

 sudo useradd -m -s /bin/bash guest_user 

现在设置密码:

 sudo passwd guest_user 

或者更好地使用adduser

 sudo adduser --gecos '' guest_user 

尝试在要使用的每个选项后添加参数。 例如:

  useradd -m guest_user -p passwd1 

正如useradd手册页所示,以这种方式添加密码不被认为是安全的,因为它是以纯文本forms传输的。 如有其他选择,请尝试:

  sudo useradd -m guest_user 

然后:

  sudo passwd guest_user 

两个警告:

  • 以:NAME_REGEX = in:/etc/adduser.conf开头的行可能禁止在用户名中使用下划线“_”字符;

  • 可能存在以下设置的密码复杂性要求:/etc/pam.d/common-password,这需要更复杂的密码。