PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。
PAM最初是集成在Solaris中,目前已移植到其它系统中,如Linux、SunOS、HP-UX 9.0等

/etc/pam.d下的文件存放的各个命令的pam模块的配置,比如:

查询某个程序具体使用的哪一个pam模块

例如:

/etc/pam.d/login

/etc/pam.d/sshd

/etc/pam.d/vsftpd


而/etc/security下的文件则对于每个pam模块又做了具体的配置,比如:parm_limits.so的配置文件就是/etc/security/limits.

其他的pam模块:auth_pam_unix.so 用来验证用户和密码的

account_pam_unix.so 验证用户有没有过期 pam_rootok.so 判断当前用户是否为root

pam_nologin.so 拒绝非root用户登录 pam_access.so 限制用户访问终端

pam_time.so 拒绝某个时间段访问某个服务


使用方式:

1)限制用户访问终端 Vim /etc/pam.d/login

添加: auth required pam_access.so

Vim /etc/security/addess.conf

添加:- : wjx : tty3

2)拒绝某个人对你sshd Vim /etc/pam.d/sshd

添加:auth required pam_access.so

Vim /etc/security/access.conf

添加:-:All : 192.168.119.120 # – 代表拒绝

+ 代表允许

3)决绝某个时间段访问某个服务 Vim /etc/pam.d/login

在account添加:account required pam_time.so

Vim /etc/security/time.cong

添加:Login; tty5; wjx; Mo1000-2300

4)echo模块 vim/etc/pam.d/login

添加:auth required pam_echo.so file=/usr/hell0.txt

touch /usr/hello.txt

vim hello.txt

hello world !!!

(5) 用户登录3次以上就在20秒以内拒绝这个用户登录

Vim /etc/pam.d/login

添加:auth required pam_tally.so deny=3 unlock_time=20

(6) 如何要求用户设置的密码必须包含5个数字,3个特殊符号?

修改/etc/pam.d/system-auth,在password使用pam_cracklib.so设置的最后附加 dcredit=5,ocredit=3

password requisite pam_cracklib.so try_first_pass retry=3 dcredit=5 ocredit=3


(7)如何限制student最多同时登陆4个?

这需要pam_limits.so模块。由于/etc/pam.d/system-auth中,默认就会通过pam_limits.so 限制用户最多使用多少系统资源,因此

只需要在/etc/security/limits.conf 中加入以下内容(RHEL5最后就有,只不过注释掉了)

student hard maxlogins 4

(8).某用户连续登陆失败3次以上就禁止登陆?

修改/etc/pam.d/system-auth

auth required pam_deny.so

account required pam_tally.so deny=3 #这一行失败三次就禁止登录

account required pam_unix.so

还有一个是profile文件http://wenku.baidu.com/view/e90f367202768e9951e73806.html