validationLinux用户密码

我有一个有几十个用户的Linux服务器。 我也有每个用户cleartext密码(我知道 – 安全性不好)。

我想知道密码是否正确。 由于用户都是ftp用户,并且拥有nologin shell,所以我不能只写一个脚本来检查login是否有效。

我怎样才能做一个本地检查密码? 脚本输出可能如下所示:

$ check_userpw < user_pw_list.txt user1 ok user2 ok user3 mismatch! user4 ok 

谢谢

如果您的用户使用存储在/ etc / shadow中的本地密码进行身份validation,则可以生成哈希值并自行比较。

对于MD5哈希,该字段看起来像这样:

$ 1 $ 5q9TrKNO $ YeVQrfsitsGlapGwhAjIl。

(包含结束期限,这是string'abc'的哈希值。)

$是分隔符。 第一个字段中的第一个字段将散列标识为MD5,而5q9TrKNO是在设置密码使词典攻击更加困难时随机生成的盐。

你可以使用这个perl模块来testing你保存的密码的散列值:使用/ etc / shadow中的salt和密码,然后检查结果是否与最后一部分匹配。

你可以使用Perl的Net :: FTP或者GNU Expect或者任何你喜欢的方法编写一个脚本来自动化FTPlogin,但是可能最简单的方法就是搭载Nagios-Plugins中的check_ftp程序。 如果login失败,它将返回非零值。