scr*_*ree 5 linux bash hashsum useradd shadow
抱歉,我是 Linux 新手,我正在寻找信息,如何使用预定义的加密密码在 Debian 中创建新用户帐户。
我在 bash 中有一个函数,如果新用户的 id 没有出现在我的 /etc/passwd 文件中,那么我运行 bash 命令:
adduser -m -p <encrypted-password> <username>
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利,但我的所有数据(包括用户名和密码)都存储在 JSON 输出中,并且用户的密码已经由 SHA-512 散列(出于安全原因)。用户的密码由 PHP 脚本加密并发送到 JSON:
$hashed_password = crypt('Test007', '$6$rounds=5000$StJ.1Wji$');
echo looks like this: $6$rounds=5000$StJ.1Wji$cm6ZVl.XoIiQXaJAVHkqiteUGAqZoJ1Ee3dpHP2a6x6rG/kHg4k7ucMLrzHCvQA1TpQYP4eKnoFITVGcviqjU0
Run Code Online (Sandbox Code Playgroud)
当我查看我的/etc/shadow
文件时,在 adduser 函数之后,我看到散列密码与 PHP 生成的原始密码不同,当然我无法以纯文本形式使用该密码登录新用户(即使我知道它是纯文本)。
有没有简单的方法,如何使用预定义的加密密码创建用户帐户?如何生成散列密码以供 Linux useradd 函数接受?我在互联网上找不到任何解决方案。
这$6$rounds=5000
可能是问题的一部分,因为除了前导 之外$6
,传递给的整个值adduser
必须是有效的哈希值。另外(在脚本片段中不明显),应该引用该值以避免参数扩展,例如,
adduser -m -p '$6$gehr8sgkkX$lMZ5bmb7c4HY76pnn0uUXA5wH51YE0Byp4rIfcA94gWrVvfeNVQsMwoW2erVuxzFScxRvaHOLFMqVSYCjVlTV/' oneshot
Run Code Online (Sandbox Code Playgroud)
我使用 mkpasswd 获取一个值,如如何为影子创建 SHA-512 哈希密码?
在这里快速检查一下,存储的值与/etc/shadow
我运行 adduser 时使用的值匹配。