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

Vin /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

/etc/pam.d 与 /etc/security 密码策略的更多相关文章

  1. pam密码策略

    PAM 的使用历史 PAM 是关注如何为服务验证用户的 API.在使用 PAM 之前,诸如 login(和 rlogin.telnet.rsh)之类的应用程序在 /etc/passwd 中查找用户名, ...

  2. 06-OpenLDAP密码策略

    阅读视图 openldap密码策略 OpenLDAP服务端定制密码策略 客户端策划策略实例 定义用户第一次登录就修改密码 问题排查手册 重点推荐官方文档 备注:本文依然承接系列文. 1. openld ...

  3. Linux用户密码策略

    使用Linux快三年了,从未想过Linux用户密码策略,从未把一本Linux的书从头看到尾(上学时的教材除外),故不知书上有无介绍,直到最近参加公司的信息安全稽核会议后才开始考虑Linux用户密码策略 ...

  4. Linux(Unix)密码策略问题导致root密码不能修改

    Linux(Unix)密码策略问题导致root密码不能修改 发布时间:  2016-01-19 浏览次数:  1034 下载次数:  5 用户修改了密码配置文件,导致root账户修改密码时报如下错误: ...

  5. 关于linux系统密码策略的设置

    由于工作需要最近需要将公司的多台linux服务器进行密码策略的设置,主要内容是增加密码复杂度. 操作步骤如下,不会的同学可以参考: 操作前需要掌握如下几个简单的知识点:(其实不掌握也行,不过学学没坏处 ...

  6. mysql5.7 密码策略

    查看现有的密码策略 mysql> SHOW VARIABLES LIKE 'validate_password%';+-------------------------------------- ...

  7. MYSQL57密码策略修改

    1.查看当前的密码测试 show variables like 'validate_password%';

  8. Windows 2008修改密码策略方法

    Windows Server 2008默认强制要求定期更改密码,这个功能有时实在是让人烦不胜烦,适当情况下可以考虑关闭. 方法如下: 1.按windows键+R(或者点开始---动行)打开运行窗口,输 ...

  9. MySQL5.7.12新密码登录方式及密码策略

    在Centos6.6上安装MySQL5.7.12时,遇到了一个问题 安装后在/root目录下没有发现有.mysql_secret这个文件,所以没有没法按照官方文档上说的那样使用,这里记录下, 解决方式 ...

随机推荐

  1. MYSQL存储过程:批量更新数据

    地区等级的信息储存在jsjh_district表. 要更新jsjh_goods_district表的district_level地区信息 DELIMITER $$ DROP PROCEDURE IF ...

  2. 安装uwsgi记录

    yum install gcc pip install uwsgi 报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 ... 解决: ...

  3. 第二章 DateTime工具类

    项目中经常需要将DateTime转化成各种格式的String类型,或将各种类型的String转为DateTime类型. 本文提供一个DateTime与String的转换工具类: import org. ...

  4. Bootstrap 基础学习笔记(一)

    排版 (1)标题 Bootstrap标题样式进行了以下显著的优化重置: 1.重新设置了margin-top和margin-bottom的值,  h1~h3重置后的值都是20px:h4~h6重置后的值都 ...

  5. 由struts错误使用引发的漏洞,使用参数作为返回的文件路径或文件名,作为返回result 值

    该错误可以导致他人任意访问该路径下的任何文件. struts 文件 <?xml version="1.0" encoding="UTF-8" ?> ...

  6. Jfinal 使用 JsonKit 转换不了问题

    使用bootStrap+jfinal开发一个管理系统,遇到了前台ajax获取数据,使用了jfinal的Jsonkit,将一个继承了model的vo进行转换,却一直没有将vo的属性值转换为json格式, ...

  7. (Python) 函数、匿名函数

    本节将学习如何用Python定义函数,调用函数,以及学习匿名函数的使用 1.定义函数 Python中定义函数用关键字def,如下例所示,testFun为函数名 def testFun(): print ...

  8. python基础语法(1)

    一.基本概念 1. python中数有四种类型:整数.长整数.浮点数和复数. 整数, 如 1 长整数 是比较大的整数 浮点数 如 1.23.3E-2 复数 如 1 + 2j. 1.1 + 2.2j 2 ...

  9. 第33讲:List的一阶函数操作代码实战详解

    今天来看一下关于List的一阶函数操作 让我们看下下面的代码 println(List(1,2,3,4):::List(4,5,6,7,8):::List(10,11))//列表连接    print ...

  10. DataTableToJson

    public static string CreateJsonParameters(DataTable dt,string JsonName) { StringBuilder JsonString = ...