自动设置和验证密码

自动设置和验证密码

我正在使用它在脚本中设置密码:

usermod -p `mkpasswd -H md5 passwordText` user

我需要在脚本中创建一个例外,以防此命令失败。哪个文件包含加密密码?我该如何逆转加密,以便验证它是否已正确写入文件?

编辑:我终于发现了上面那行的问题。密码允许在命令行上被解释为通配符的符号,这让它看起来好像命令本身失败了。尽管如此,它还是让我发现了新的东西,我很高兴现在知道了。

答案1

为什么不直接做,而是反转 shadow 文件:

usermod -p `mkpasswd -H md5 passwordText` user

if [ $? -ne 0 ]; then
    echo "Changing password failed!!!!!!"
fi

您可以替换块中的任何内容if,但如果命令失败,usermod它将返回非零状态。

答案2

密码存储在/etc/shadow,您可以尝试与开膛手约翰确认。

我不确定是否允许在这里发布有关约翰的教程,如果可以的话我可以轻松地写一个,但如果不可以,谷歌搜索会告诉你如何写。

我上次查看时,John 需要一个补丁,但是启动板上的错误报告似乎表明该补丁已被合并到存储库中,因此我会先尝试未修补的版本(我知道,懒惰 =))。

缺少约翰,su - test_user->输入密码。

关于开膛手约翰的简短教程:

安装 john

sudo apt-get install john

准备工作数据库(在这个例子中,我创建了一个使用弱密码的用户“test”)。

sudo unshadow /etc/passwd /etc/shadow > password.db

跑吧约翰

john password.db

Loaded 2 password hashes with 2 different salts (generic crypt(3) [?/64])
Remaining 1 password hash
guesses: 0  time: 0:00:00:03 0% (2)  c/s: 222  trying: monday - emily

如你所见,John 在 0.03 秒内破解了弱密码,我的用户密码对 John 来说太强了,所以我用Crtl+中止了它c

显示密码

john --show password.db

test:testing:1001:1001:,,,:/home/test:/bin/bash

1 password hash cracked, 1 left

这里我们看到用户“test”,密码为“testing”

su test
Password: 

测试@ufbt:/home/测试

相关内容