简介:
Linux-PAM(Pluggable Authentication Modules for
Linux.基于Linux的插入式验证模块)是一组共享库,使用这些模块,系统管理者可以自由选择应用程序使用的验证机制。也就是说,勿需重新编译应用
程序就可以切换应用程序使用的验证机制。甚至,不必触动应用程序就可以完全升级系统使用的验证机制。
在历史上,需要对用户进行验证的应用程序,必须同某种验证机制编译到一起。例如,传统的UN*X系统是使用密码对用户进行校验的。用户输入的密码经过
crypt加密后,然后和/etc/passwd文件中的密文进行比较。在这种系统中,如果优先权的识别不是基于这种方式,就需要通过用户识别符和用户组
识别符对优先权进行验证。服务和应用程序可以使用基于用户和用户组识别的验证方式。通常,用户组的分配是通过/etc/group文件。
不幸的是,随着计算机速度的加快和网络的大范围普及,使用这种验证方式越来越不安全了。因此,人们开发了许多新的验证方法。
Linux-PAM工程的目的就是分离应用软件和验证机制的开发。通过验证函数库可以实现上述目的。PAM库由本地的系统配置文件
/etc/pam.conf或者/etc/pam.d/目录下的一些配置文件来设置。而模块以动态可加载目标文件(使用dloptn(3)函数打开)的形
式保存在/usr/lib/security目录中。
如图
下面是一些简单应用
pam_access
通过使用pam_access模块只允许用户tomyang本地登录
1.修改/etc/pam.d/login
在password和session之间加入:account required pam_access.so
2.在/etc/security/access.conf中增加如下行
-:ALL EXCEPT tomyang : LOCAL
如果需要禁止root以外的任何人从任何地方登录,可以在/etc/security/access.conf中增加如下行
-:ALL EXCEPT root : ALL
pam_cracklib
下面的例子使用两行堆叠了两个password类型的模块,实现用户有3次机会输入强密码。“use_authok”参数确保pam_unix模块不再另外提示输入密码,而是采用由pam_cracklib提供的密码。
password required pam_cracklib.so retry=3
password required pam_cracklib.so use_authok
pam_issue
通过使用pam_issue模块更改登录时显示的内容。
1.修改/etc/issue文件,内容如下
welcome to my linux space , we are the freedomfighters...
2.修改/etc/pam.d/login文件,内容如下
在password和session之间添加auth pam_issue.so issue=/etc/issue
pam_limits
1.修改/etc/security/limits.conf(对同一个资源如tonyzhang的软限制和硬限制,表示制定了用户可以从制定服务会话中得到默认及最大允许的资源数)。
tonyzhang hard nproc 20
tonyzhang soft nproc 20
tonyzhang hard nproc 50
2.对于需要进行资源限制的服务历程(如login),直接在/etc/pam.d/login文件中增加如下内容
session required pam_limits.so
pam_listfile
在/etc/pam.d/sshd文件中增加如下内容
account pam_listfile onerr=fail item=user sense=allow file=/etc/allowsh
pam_motd
在/etc/pam.d/login增加如下内容后,登录信息将被写入/etc/motd文件中
session pam_motd.so motd=/etc/motd
pam_rootok
允许root用户在不输入密码的情况下变更为其他用户的身份,这是因为在/etc/pam.d/su中定义了如下内容
auth sufficient pam_rootok.so
auth required pam_unix_auth.so
pam_time
1.修改/etc/pam.d/login
在password和session之间添加account required pam_time.so
2.编辑/etc/security/time.conf
login ; tty* & ; !tty* ; !root ; !A10000-2400
games ; * ; !tonyzhang ; Wd0000-2400 | Wk1800-0800
其中各行含义如下
出了root禁止所有用户在任何时间从控制台登录
games(使用Linux-PAM的某游戏)只在非工作时间可以访问,此规则不限制用户tonyzhang
pam_unix
在/etc/pam.d/system-auth文件中增加如下内容后,用户在设置密码时将不能使用最后5次使用过的密码
password sufficient pam_unix.so use_authtok md5 shadow remember=5
............
阅读(1254) | 评论(1) | 转发(0) |