您的位置:首页 > 其它

nsswitch & pam

2018-02-25 19:51 239 查看
nsswitch & pam

名称解析:
name: id
认证服务:

nsswitch: network service switch
提供了一些库文件(.so)以供应用程序调用

解析库:
文件、MySQL、NIS、LDAP、DNS

通用框架,与各存储交互的实现:
/usr/lib64/libnss*, /lib64/libnss*

配置文件
/etc/nsswitch.conf

db:                 store1, store2, ...
定义了一个存储库名   具体的存储方案(files or db),
files默认建立在/etc目录下,为相应的存储库名

每种存储中查找的结果状态:STATUS => success | notfound | unavail | tryagain
对应于每种状态参数的行为:ACTION => return | continue

host: files nis [NOTFOUND=return] dns

# getent database  [entry]
存储库名  数据检索条件

pam:pluggable authentication module
提供了一些库文件(.so)以供应用程序调用
认证库:
文件、MySQL、LDAP、NIS

通用框架,与各存储交互的实现,以及多种辅助性功能:
/lib64/security/

配置文件:/etc/pam.conf
/etc/pam.d/*.conf

通常每个应用使用一个单独的配置文件;
应用程序a, 对应/etc/pam.d/a.conf, a.conf指明应用应调用那个库(/usr/lib64/pam_*.so),实现那种认证机制;

配置文件中每行定义一种检查规则;
格式:
type    control     module-path module-arguments

type:检查功能类别
auth: 账号的认证和授权
account:与账号管理相关的非认证功能
password:用户修改密码时密码检查规则
session:用户获取到服务之前或使用服务完成之后要进行的一些附加性操作

control:同一种功能的多个检查之间如何进行组合;
有两种实现机制:
1、使用一个关键词来定义;例如sufficient,required, requisite;
2、使用一或多个“status=action”形式的组合表示

简单机制:
required
requisite
sufficient
optional
include

复杂机制:[status1=action1,status2=action2,....]
status:返回状态,
action: ok, done, die, ignore, bad, reset

module-path: 模块路径
/lib64/security: 此目录下的模块引用时可使用相对路径;
module-arguments: 模块参数

模块:
(1) pam_shells.so

(2) pam_limits.so
模块通过读取配置文件完成用户对系统资源的使用控制
/etc/security/limits.conf
/etc/security/limits.d/*

<domain> <type> <item> <value>

<domain>:
username
@group
*: 所有用户

<type>
soft:
hard:由root设定,通过kernel强制生效;
-:二者同时限定;

<item>
nofile: 所能够同时打开的最大文件数量;
nproc: 所能够同时运行的最大进程数量;
msqqueue:使用的POSIX消息队列能够占用的最大内存空间;
sigpending:所能够使用的最大信号数量;

<value>

vi /etc/security/limits.conf
apache           -       nofile          60000
单用户最大打开文件数量限制;

ulimit -n #:文件数量
ulimit -u #:进程数量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: