首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >su认证失败

su认证失败
EN

Server Fault用户
提问于 2019-09-06 17:57:10
回答 1查看 720关注 0票数 0
代码语言:javascript
复制
OS Ubuntu 18.04

我试图添加一个用户,使用密码,主目录,创建一个同名的组,使用bash脚本。

我试过:

代码语言:javascript
复制
sudo useradd -U -m -p $(openssl passwd -1 'some_password') test

创建了用户,以下是/etc/passwd中的条目:

代码语言:javascript
复制
test:x:1004:1004::/home/test:/bin/sh

创建了主目录:

代码语言:javascript
复制
/home/test

这个小组成立了。

问题是,当我尝试做:

代码语言:javascript
复制
su test

它要求我输入密码,但当我输入密码时,我会得到以下错误:

代码语言:javascript
复制
su: Authentication failure

PS:我意识到在bash脚本中添加密码的危险,但这不是我要做的。脚本要求用户输入密码,并在脚本中使用它,如下所示:

代码语言:javascript
复制
sudo useradd -U -m -p $(openssl passwd -1 '$password') $username

有什么想法吗?

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

为了进行诊断,我创建了一个bash脚本doit.sh并在其中包含:

代码语言:javascript
复制
passwd='SomePassword1234'
username='test2'
sudo useradd -U -m -p $(openssl passwd -1 '$password') $username

我把它作为:

代码语言:javascript
复制
bash -x doit.sh

这是输出:

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

我试着说:

代码语言:javascript
复制
ubuntu@myserver:~$ su test2
Password: 
su: Authentication failure
ubuntu@myserver:~$ 
EN

回答 1

Server Fault用户

发布于 2019-09-06 19:14:21

引用“$password”的字面意思是:$password而不是$password变量的值。这里需要"$password"

代码语言:javascript
复制
sudo useradd -U -m -p $(openssl passwd -1 "$password") $username
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/982249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档