用户认证 PAM:可插入式认证模块
PAM  
       框架
       集中式的共享认证
       可动态配置:按需要配置哪些功能需要认证
       pam的认证关卡:
                     /lib64/security  64位的linux系统
                     /lib/security 模块
              同一个关卡可以被多个软件使用
       pam的配置文件:/etc/pam.d/
                     存放的模块与服务或软件相对应
认证过程:叫类型
       auth 验证
       account 账号信息
       password  密码
       session 会话
不是所有的程序都可以用pam
配置格式:
       service  type control module-path module-arguments模块参数
       单个文件格式不需要service
       type类型: 可以出现多次
                 auth 认证用户
                 account  用户授权
                 password
                 session
       control类型:简单的control  高级的control auth [values1=  values2=...]
              简单的control;
                    requid 必须通过  失败继续检查
                     requisite  必须通过 失败直接退出
                     sufficient 满足则直接通过 不用再通过其他关 失败则继续检查
                     optional 过或不过都测试  可选的
                     include 检查文件 包含与type相同的文件并显示
              高级control 组合条件 取得值采取的动作
                6中标准动作 ok 通过 继续检查
                            done       通过了 就可以了
                            bad  失败则继续检查
                            die   失败不在检查
                            ignore  成功失败都忽略
                            reset  不管成功与否都重置为原来的值
              required [success=ok new_authok_reqd=ok ignore=ignore default=bad]
 
/etc/pam.d下文件:
       system-auth 包含最常见的认证机制 连接文件 集中
       other 定义默认认证规则
       login 登陆时用的认证
 
常见的模块:
              pam_unix.so 本地认证的 实现用户登陆shadow passwd
                     NSS 参数:nullok 允许密码为空
                                shadow 基于shadow文件
                                try_first_pass 尝试使用上一次使用的密码
                                md5 基于md5散列认证
              pam_cracklib.so   修改密码认证时用到 根据字典设置 不允许普通用户修改密码
              pam_passwdqc.so   和上面的相似 不检查字典
              pam_tauy.so    记录一个用户错误登陆的次数 启用会在/var/log下生成faillog文件
                                                   faillog -u jing 可查看
              pam_shells   只允许在/etc/shells里的定义访问shell
              pam_securetty  限定root只能从特定的终端登陆 /etc/securetty里定义
              pam_nologin.so  root用户在什么时候不能登陆 /etc/nologin 有该文件就不允许 没有则允许
              pam_listfile.so       基于额外的文件登陆用户 例如:vsftpd 中的/etc/vsftpd/ftpuser
              pam_rootok.so  root用户切换到其他用户不用输入密码 常用于su
              pam_limits.so  做资源限制的
                            /etc/security/limits.conf
                            <domain>        <type>  <item>  <value>
                            domain 用户名 组名@group
                            type hard 硬限制 不能超过
                                   soft 软限制
                                   - 软硬都限制
                            item data 数据在内存中占用的大小
                                   fsize 单个文件大小限制
                                   nproc 打开最多进程数的
                                   nofile 能打开多少个文件
                                   cpu 能使用多长时间的cpu
                                   as 地址空间限制 内存限制
                            # ulimit -n 调整同时打开的文件数设置  做的为软限制
                                     -u 一个用户能用的进程数
                             ulimit -S 软限制 -H 硬限制  --->root设置