pam_cracklib的使用


说明:
pam_cracklib        检查密码是不是在字典里面,并保证密码的强壮性

[root@station203 pam.d]# uname -a
Linux station203.example.com 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i686 i686 i386 GNU/Linux

首先先man一下再说。
[root@station203 security]# man pam_cracklib
...........省略..............


所属类型:password

这个验证模块可以通过插入password堆栈,为特殊的应用提供可插入式密码强度性检测。它的工作方式就是先提示用户输入密码,

然后使用一个系统字典和一套规则来检测输入的密码是否不能满足强壮性要求。密码的强度检测分二次进行,第一次只是检测密码

是否是提供的对比字典中的一部分,如果检测结果是否定的,那么就会提供一些附加的检测来进一步检测其强度,例如检测新密码

中的字符占旧密码字符的比例,密码的长度,所用字符大小写状况,以及是否使用了特殊字符等等。

选项:
debug:将debug信息写入syslog
type=XXX:提示输入密码的文本内容。默认是"New UNIX password: " and "Retype UNIX password: ",可以自定义。
retry=N:用户最多可以几次输入密码后报错。默认是1次。
difok=N:新密码有几个字符不能和旧密码相同,默认是5个。另外如果新密码有1/2的字符于旧不同,也会被接受。
diginore=N:默认当新密码有23个字符时,difok选项会被忽略。
minlen=N:最小密码长度。
dcredit=N:当N>=0时,N代表新密码最多可以有多少个阿拉伯数字。当N<0时,N代表新密码最少要有多少个阿拉伯数字。
ucredit=N:和dcredit差不多,但是这里说的是大写字母。
lcredit=N:和dcredit差不多,但是这里说的是小写字母。
ocredit=N:和dcredit差不多,但是这里说的是特殊字符。
use_authtok:在某个与密码相关的验证模块后使用此选项,例如pam_unix.so验证模块,可以强迫此模块不提示输入密码,而使用

上面设置的另一种方式,例如pam_cracklib.so。
dictpath=/path/to/dict:指定cracklib字典路径。


实例:
[root@station203 pam.d]# vim system-auth            ## 下面retry默认是3
password    requisite     pam_cracklib.so try_first_pass retry=2

测试:图1


aaa用户修改密码,两次不符合要求后报错。




minlen=N ,加上这个参数好像不没有什么作用,不知道为什么。。有高手麻烦提示下。