我正在使用它在脚本中设置密码:
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/测试