
常用pam模块简介.doc
10页转载自“ 华夏名网” 常见的PAM 认证模块简介 概述:本文介绍常见的 pam 认证模块,包括每一个模块的所属类型、功能描述以及可识别 的参数,有配置文件的,我们给出了配置文件的简单说明,其中一 部分模块,我们还给出 了配置实例希望通过我们的介绍,使读者对常用的 pam 认证模块有一定的了解本文的 介绍是基于 redhat7.x 系统水平有限, 不足之处请读者批评指正 1.pam_access 认证模块 所属类型:account 功能描述:该模块提供基于登录用户名、客户 ip/ 主机名、网络号以及登录终端号的访问控 制缺省的,该模块的配置文件是/etc/security/access.conf,可以使用 accessfile 参数指定自 定义的配置文件 可带参数:accessfile=/path/to/file.conf 配置文件说明: 该文件的每一行由如下三个字段构成,中间使用冒号分割: 权限 : 用户 : 来源 权限字段可以是”+”(即允许访问),”-”( 禁止访问) ; 用户字段可以是用户名、组名以及诸如 user@host 格式的用户名,all 表示任何人, 具有多个值时,可以用空格分开。
来源字段可以是 tty 名称(本地登录时) 、主机名、域名(以”.” 开始),主机 ip 地址,网络 号(以”.” 结束) all 表示任何主机,local 表示本地登录 可以使用 except 操作符来表示除了…之外 配置实例: 只有 bye2000可以从本地登录主机 编辑/etc/pam.d/login 如下所示: #%pam-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_stack.so service=system-auth auth required /lib/security/pam_nologin.so account required /lib/security/pam_stack.so service=system-auth account required /lib/security/pam_access.so password required /lib/security/pam_stack.so service=system-auth session required /lib/security/pam_stack.so service=system-auth session optional /lib/security/pam_console.so 也即加上 account required /lib/security/pam_access.so 然后在/etc/security/access.conf 中加上: -:all except bye2000 : local 假如禁止 root 以外的任何人从任何地方登录,可以在/etc/security/access.conf 中加上: -:all except root: all 2.pam_chroot 认证模块所属类型:account, session, auth 功能描述:该模块为一般用户提供一个虚根环境,该模块的配置文件是 /etc/security/chroot.conf。
可带参数: debug:将调试信息写入日志 onerr:定义当配置文件无法打开、chroot() 函数失败以及配置文件中没有用户信息时的动作, 缺省为”succeed” 附加说明:该模块文档不全,没有对 chroot.conf 的相关配置说明 3.pam_cracklib 认证模块 所属类型:password 功能描述:该模块对用户密码提供强健性检测换句话说,您可以定义用户密码的方方面 面,比如密码长度、密码的复杂程度等等 可带参数: debug:将调试信息写入日志 type=xxx:添加/ 修改密码时,系统的缺省提示符是” new unix password:”以及” retype unix password:”,使用该参数可以自定义提示符中的 unix ,比如指定 type=your. retry=n:定义添加/修改密码失败时,可以重试的次数 difok=n:定义新密码中必须有几个字符要与旧密码不同但是如果新密码中有1/2 以上的字 符与旧密码不同时,该新密码将被接受 minlen=n:定义密码最小长度 dcredit=n:定义密码中可以包含数字的最大数目 ucredit=n:定义密码中可以包含的大写字母的最大数目。
lcredit=n:定义密码中可以包含的小写字母的最大数目 ocredit=n:定义密码中可以包含的其他字符(除数字、字母之外)的最大数目 配置实例: 请参考/etc/pam.d/system-auth 文件 4.pam_deny 认证模块 所属类型:account, session, auth,password 功能描述:该模块仅仅返回一个错误用来拒绝用户访问通常该模块被用来作为缺省的 验证规则 可带参数:无 配置实例: 请参考/etc/pam.d/system-auth 文件 5.pam_env 认证模块 所属类型: auth 功能描述:该模块可以用来设置任意的环境变量,缺省的,该模块的配置文件是 /etc/security/pam_env.conf,可以使用 conffile 参数指定自定义的配置文件 配置文件说明:该配置文件每一行(一个条目)的语法如下: 变量名 [default=[值]] [override=[值]] 选 项 default 说明这是一个缺省值;override 则说明可以覆盖缺省值在该配置文件中,可 以使用${变量名}的形式应用变量除此之外,该模块还 可以从/etc/environment 文件中读 入形如“ 变量名=值” 的环境变量,当然该文件也可以用 readenv 参数自己指定。
需要注意的 是,该文件 的读入的值,将覆盖 conffile 文件中的缺省值 可带参数:debug:将调试信息写入日志 conffile=filename:指定自定义的配置文件; readenv=filename:指定自定义包含“变量名=值” 形式的环境变量配置文件; readenv=1/0:设置是否从 readenv 中读入环境变量,缺省是1,也即读入 配置实例: 请参考/etc/pam.d/system-auth 文件 6.pam_filter 认证模块 所属类型:account, session, auth,password 功能描述:该模块提供对用户和应用程序交互内容的访问控制功能,目前仅仅具有大小写 转换功能该模块还有待完善 7.pam_ftp 认证模块 所属类型:auth 功能描述:该模块提供匿名 ftp 用户认证机制 可带参数: debug:将调试信息写入日志 users=xxx,yyy:指定采用该模块进行认证的用户名,缺省为 ftp 和 anonymous,可以用逗号 进行分割; ignore:不对用户输入的密码(邮件地址)进行检验 8.pam_group 认证模块 所属类型:auth 功能描述:该模块没有提供用户认证,而仅仅是授予该用户指定组的组权限。
其缺省的配 置文件为/etc/security/groups.conf Array.pam_issue 认证模块 所属类型:auth 功能描述:该模块在用户登录时,将/etc/issue 文件的内容打印出来 可带参数: issue=filename:指定其他配置文件,而不是缺省的/etc/issue. noesc:不对配置文件中的转移字符进行解释 配置文件说明: 配置文件中可以使用形如 x 的转移字符来实现特定的功能可以识别的转移字符有: d:打印当前日期 s:打印操作系统名称 l:打印当前 tty 名称 m:打印 cpu 类型(i686、sparc 、powerpc 等) :打印主机名 o:打印域名 :打印内核版本号 :打印当前系统时间 u:打印系统当前用户数 u:同 u,但是在用户数后有 users 字样 v:打印系统安装的日期 配置文件实例: $ more /etc/issue welcome totime: d user online: u 10.pam_lastlog 认证模块 所属类型:auth 功能描述:该模块在用户登录时,打印最后登录系统的信息(在/var/log/lastlog 中) ,通常 已经有其他程序在作这个工作了,所以没有必要使用该模块。
11.pam_limits 认证模块 所属类型:session 功能描述:该模块限制用户会话过程中系统资源的使用率缺省的,该模块的配置文件是 /etc/security/limits.conf,可以使用 conf 参数指定自定义的配置文件 可带参数: issue=filename:指定其他配置文件,而不是缺省的/etc/issue. noesc:不对配置文件中的转移字符进行解释 配置文件说明: debug:将调试信息写入日志 conf=filename:指定配置文件 配置文件说明:该配置文件每一行(一个条目)的语法如下: 在这里 可以是 用户名 用户组名,采用@group 的语法 通配符*,表示任何 可以是 soft-表示软限制,可以超过该限制 hard-表示硬限制,有 root 设定,内核执行,不可以超过该限制 可以是 core-core 文件大小 (kb) data-最大数据大小(kb) fsize-最大文件大小(kb) memlock-最大可用内存空间(kb) nofile-最大可以打开的文件数量 rss-最大可驻留空间(kb) stack-最大堆栈空间(kb) cpu-最大 cpu 使用时间(min ) nproc-最大运行进程数 as-地址空间限制 maxlogins-某一用户可以登录到系统的最多次数 locks-最大锁定文件数目 需要注意的是,如果无限制可以使用”-”号,并且针对用户限制的优先级要比针对组的 优先级高。
配置文件实例: * soft core 0 * hard rss 10000@student hard nproc 20 @faculty soft nproc 20 @faculty hard nproc 50 12.pam_listfile 认证模块 所属类型:auth 功能描述:该模块提供根据某种规则来对用户进行访问控制的功能通常把访问控制规则 放在一个文件中,可以用 file 参数指定该文件一般可以根据用户名、登录 tty 名、 rhost、ruser 、所属用户组、登录 shell 来对用户访问进行控制 可带参数: item=[tty|user|rhost|ruser|group|shell]:定义所采用的规则; onerr=succeed|fail:定义当出现错误(比如无法打开配置文件)时的缺省返回值; sense=allow|deny:定义当再配置文件中找到符合条件的项目时的返回值;如果没有找到符 合条件的项目,则返回相反的值; file=filename:指定配置文件 apply=user|@group:定义采用非 user 和 group 的规则时,这些规则所应用的对象。
配置实例: 比如/etc/pam.d/ftp: $ more /etc/pam.d/ftp #%pam-1.0 auth required /lib/security/pam_listfile.so item=user sense=deny file= /etc/ftpusers onerr=succeed auth required /lib/security/pam_pwdb.so shadow nullok # this is disabled b。












