su 身份验证失败

su 身份验证失败
OS Ubuntu 18.04

我正在尝试使用 bash 脚本添加一个用户,并设置密码和主目录,创建一个同名的组。

我试过:

sudo useradd -U -m -p $(openssl passwd -1 'some_password') test

用户已创建,这是 /etc/passwd 中的条目:

test:x:1004:1004::/home/test:/bin/sh

主目录已创建:

/home/test

群组就创建好了。

问题是,当我尝试这样做时:

su test

它要求我输入密码,但是当我输入密码时,出现以下错误:

su: Authentication failure

PS:我意识到在 bash 脚本中添加密码的危险,但这不是我正在做的事情。该脚本要求用户输入密码,并在脚本中像这样使用它:

sudo useradd -U -m -p $(openssl passwd -1 '$password') $username

有任何想法吗?

在同一个系统上,我尝试使用 useradd 添加 test2 用户,并输入密码。我能够使用 test2 进行 su

为了诊断目的,我创建了一个 bash 脚本 doit.sh,其中包含:

passwd='SomePassword1234'
username='test2'
sudo useradd -U -m -p $(openssl passwd -1 '$password') $username

我将其运行为:

bash -x doit.sh

输出如下:

ubuntu@myserver:~$ bash -x doit.sh
+ passwd=SomePassword1234
+ username=test2
++ openssl passwd -1 '$password'
+ sudo useradd -U -m -p '$1$okAtvbfD$hVwD0AoMWR5AiTw.9Bztf.' test2

我尝试 su:

ubuntu@myserver:~$ su test2
Password: 
su: Authentication failure
ubuntu@myserver:~$ 

答案1

这是引用,'$password' 的字面意思是:$password而不是 $password 变量的值。"$password"这里是必需的。

sudo useradd -U -m -p $(openssl passwd -1 "$password") $username

相关内容