在 Ubuntu 上添加了一个新用户,设置密码不起作用?

Ari*_*Ari 6 users group

我创建了一个新用户:

$ sudo useradd -m Ari -p pass123
Run Code Online (Sandbox Code Playgroud)

但是当我去登录时,它说密码不正确,我知道它是正确的,因为我将命令行日志保存为文本文件。

除此之外,同时我还创建了一个组:

$ sudo groupadd testgroup1
Run Code Online (Sandbox Code Playgroud)

并将新帐户添加到其中:

$ sudo usermod -a -G testgroup1 Ari
Run Code Online (Sandbox Code Playgroud)

为什么不能登录?

jes*_*e_b 11

-p选项正在寻找加密密码:

-p, --password 密码

crypt(3) 返回的加密密码。默认是禁用密码。

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.
Run Code Online (Sandbox Code Playgroud)

您应该使用以下方法更改密码:

sudo passwd Ari
Run Code Online (Sandbox Code Playgroud)

为了使用该-p选项,您必须首先加密密码。您可以使用这里提到的一些方法例如:

$ mkpasswd
Password:
1puqSPGTnyi5o
$ sudo useradd -m Ari -p 1puqSPGTnyi5o
Run Code Online (Sandbox Code Playgroud)

请注意,该mkpasswd实用程序包含在whois可通过 apt 获得的软件包中

  • ***不要***使用`openssl passwd`,尤其不要使用`-crypt`。它使用 [过时的基于 DES 的 _crypt_ 函数](https://en.wikipedia.org/wiki/Crypt_(Unix)),其中仅限于 8 个字符的密码(和 2 个字符的盐)。我系统上的 openssl 确实支持基于 MD5 的散列(`$1$`),但不支持较新的基于 SHA2 的散列(`$5$` 和 `$6$`),后者是 Linux 系统上常用的散列。 (3认同)