一、nsswitch概述
1.nsswitch:network/name service switch
nsswitch网路名称服务解析是通用框架,与各种类型存储进行交互的公共模块化实现;
实现:/usr/lib64/libnss*,/lib64/libnss*
框架模块:libnss;驱动模块:libnss_files-
2.配置文件:/etc/nsswitch.conf
(1)格式
为每一种用到解析库的应用通过配置定义其位置,格式======解析库: store1 store2 …=======
解析库可以为文件、关系型数据管理系统(MySQL)、NIS、LDAP、DNS
例如:passwd: files 密码通过文件解析
hosts: files dns hosts通过文件解析,若没有再通过dns解析
(2)查找结果和状态
每种种存储中的查找结果状态:STATSU => success | notfound | unavail | tryagain
对应于每种状态结果的行为(action):return| continue
例子:
hosts:files nis [NOTFOUND=return] dns
3.getent命令:get entries,从指明库中查找指定名称
getent DATABASE [key]
二、PAM概述
1.pam:pluggableauthenticationmodule,可插入式认证模块
通用框架,提供了与各种类型存储进行交互的公共实现、以及多种辅助类的功能:/lib64/security/*
提供认证库有多种类型的存储:文件、关系型数据管理系统、LDAP、NIS… ...
2.配置文件:
(1)为各种调用了pam的应用提供其专用配置
通用:/etc/pam.conf,可为每一种调用pam完成认证功能的应用程序提供配置;
专用:/etc/pam.d/*,通常专用于为某种特定的应用程序提供配置;通常每个应用会使用一个单独的配置文件;
(2)配置文件格式
通用配置文件:application type control module-path module-arguments
专用配置文件:type control module-path module-arguments
3.配置文件格式详解
(1)type:检查的功能类别
可能使用一个或者多个进行限定认证
auth |
账号的认证和授权; |
account |
与账号管理相关的非认证类的功能; |
password |
用户修改密码时密码复杂度检查机制; |
session |
用户获取到服务之前或使用服务完成之后需要进行一些附加性操作; |
(2)control:同一种功能的多个检查之间如何进行组合;
1)简单实现:使用一个关键词来定义控制
required:必须通过检查;否则,即为失败;无论成功还是失败,都需继续由后续同种功能的其它模块进行检查;
requisite:一票否决;检测失败就直接返回失败;检测成功,则由由后续同种功能的其它模块进行检查;
sufficient:一票通过,检测成功就直接返回成功;检测失败,则由由后续同种功能的其它模块进行检查;
optional:可选的,参考性控制机制;
include:调用其它配置文件中的同种功能的检测机制;
2)详细实现:使用一个或多个“status=action”
[status1=action1,status2=action2, ...]
status:返回状态
action:采取的行为,比如ok,done, die, bad, ignore, ...
(3)module-path:模块文件路径;
相对路径:相对于/lib64/security/目录而言;
绝对路径:可位于任何可访问路径;
(4)module-arguments:模块的专用参数;
三、pam_limits.so:资源限制
1.pam_linits.so
在用户级别实现对其可使用的资源的限制,例如可打开的文件数量,可运行的进程数量,可用内存空间;
2.修改限制的实现方式:
(1)ulimit命令:用于调整软限制;
-n 最多的打开的文件描述符个数
-u 最大用户进程数
-S 使用 `soft‘(软)资源限制
-H 使用 `hard‘(硬)资源限制
(2)配置文件:/etc/security/limits.conf,/etc/security/limits.d/*.conf
配置文件:每行一个定义;
格式:<domain> <type> <item> <value>
<domain>:应用于哪些对象
username
@group
*:所有用户
<type>:限制的类型
soft:软限制,普通用户自己可以修改;
hard:硬限制,由root用户设定,且通过kernel强制生效;
-:软硬使用相同限制;
<item>:限制的资源类型
nofile:所能够同时打开的最大文件数量;默认为1024;
nproc:所能够同时运行的进程的最大数量;默认为1024;
nsswitch&PAM认证框架