密码不适用于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
选项的PASSWORD
是crypt(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,这需要更复杂的密码。