gpt4 book ai didi

ubuntu - 即使密码正确,也无法登录 ubuntu 用户

转载 作者:行者123 更新时间:2023-12-04 19:24:41 24 4
gpt4 key购买 nike

目标:
使用 shell 脚本自动创建用户帐户。
脚本:

#!/bin/bash
USERNAME="catty"
PASSWORD="$USERNAME@123"

useradd -m $USERNAME -p $PASSWORD
我如何在终端中运行脚本: sudo sh Scripts/test.sh 会发生什么:
用户账号创建成功
问题:
当我在运行脚本后尝试登录并输入正确的密码(在这种情况下为“catty@123”)时,它无法进行身份验证。
所以我检查了 /etc/shadow使用 cat .我注意到我的密码如预期的那样是散列形式,但是 catty 的不是。然后,我手动更改了她的密码,然后再次检查了文件,它被散列并允许我成功登录。
为什么会发生这种情况,解决方案是什么?

最佳答案

来自 man 8 useradd -

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

这意味着 useradd期望给 -p 的参数是密码的散列形式,并将其添加到 /etc/shadow不改变它。
这就是密码未散列存储在您的 /etc/shadow 中的原因。文件。这也是您无法登录的原因,因为 login程序在将您输入的密码与 /etc/shadow 中的条目匹配之前对其进行哈希处理,以及 kitty@123 的散列版本与 kitty@123 不匹配.

what is the solution?


AFAIK 没有现成的 CLI 程序可以使用 crypt(3) 加密字符串.

附言我现在不在类似 UNIX 的机器上,所以我无法对此进行测试,但您可以尝试将密码通过管道传送到 passwd看看这是否有效。
echo "$PASSWORD" | passwd

关于ubuntu - 即使密码正确,也无法登录 ubuntu 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72242961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com