nss pam

nsswitch&PAM认证框架

nsswitch

1.nsswitch:Name Service Switch,名称服务开关;

名称解析:将人类使用的自然语言的符号转换成计算机能够使用的数字符号

2.应用程序的名称解析流程:

应用程序  --> nsswitch(配置文件(查询顺序)) --> 对应库文件 --> 解析库 --> 完成解析

3.nsswitch(network services switch 网络服务转换)

中间层,本质上上是一些库文件。提供了为应用程序向不同的解析库进行名称解析的手段和顺序。

通用框架:为应用程序提供简洁高效的接口;代理程序;

作用:承上启下;

承上:提供统一的配置和调用接口;

启下:用户与各种形式的存储进行交互;

在Linux中实现名称解析的通用框架:库

/lib64/libnss*, /usr/lib64/libnss*

框架:

libnss3.so

驱动(接口):

libnss_files.so, libnss_dns.so, libnss_db.so , ...

4.配置文件:

/etc/nsswitch.conf

文件的格式:

db: store_format1 store_format2 ....

每种存储中都可以根据查找键进行查找,并且会返回状态;

STATUS => success | notfound | unavail | tryagain

对于每种状态返回值,都有相应的行为(ACTION):

ACTION => return | continue

默认情况下,对于success状态的行为是return;对于其他状态的行为都是continue;

可以自定义状态和行为的关系:

[STATUS=ACTION]

将此项放置于对应的存储格式之后即可;

hosts: files nis [NOTFOUND=return] dns

5.getent命令:

从某个解析库LIB中获的条目。该命令可以检测nsswitch配置是否正确。

getent - get entries from Name Service Switch libraries

getent database [key]

例如:

#getent hosts

#getent passwd

#getent passwd root

#getent hosts www.test.com

------------------------------------------------------------------------------------------

pam

pluggable authentication modules;通用的认证框架

1.其功能实现同样通过库;

模块的存放路径:/lib64/security/*

2.配置文件:

全局认证配置文件:/etc/pam.conf

格式:

application type control module-path module-arguments

为每种应用提供的专用的配置文件:/etc/pam.d/*APP_NAME*

格式:

type control module-path module-arguments

3.配置文件格式详解

type:

检查的功能类别,可能使用一个或者多个进行限定认证

auth:与账号的认证和授权有关;

account:与账号的管理相关,但与认证无关的功能;

password:与用户修改密码时密码的复杂度有关的功能;

session:用户获取到服务之前或使用服务完成之后需要进行附加操作;

control:

同一种功能的多个检查之间如何进行组合

required:如果本条目没有被满足,那么最终本次的认证一定失败;但是本次认证过程并不中断;整个栈运行完毕之后必定返回"认证失败"的信号;具备隐形的一票否决;

requisite:如果本条目没有被满足,那么本次认证一定失败;而且整个栈立即终止并返回"认证失败"信号;显示的一票否决;

sufficient:如果本条目的条件被满足,且本条目之前没有任何的required条目判断为失败,则整个栈立即终止并返回"认证成功"信号;如果本条目的验证失败,还需要继续参考其他的条目规则;一票通过;

optional:可选的,无足轻重的表决;

include:将其他的配置文件中的流程栈包含在当前位置,就好像把其他的配置文件的配置内容复制到当前文件一样;

substack:运行其他配置文件的流程,但与include不同的是,其在子栈中运行,其运行结果不影响主栈;

返回的状态 status:user_unknown, success, default, ...

采取的行为 action: ok, N, bad, die, done, ignore, reset, ...

module-path:模块文件路径;

相对路径:相对于/lib64/security/目录而言;

绝对路径:可位于任何可访问路径;

module-arguments:模块的专用参数;

4.常用到的pam模块

pam_limits.so

pam_listfile.so

pam_time.so

例如:

1.pam_limits.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;

maxlogins:此用户的最大登录数

rss:最大驻留集大小(KB)

时间: 2024-08-27 17:35:04

nss pam的相关文章

Linux运维 第三阶段 (十三)nss&pam

Linux运维第三阶段(十三)nss&pam 一.nss(network service switch网络服务转换) authentication(认证,决定用户的用户名和密码是否能通过检验) authorization(授权,决定用户是否能访问某服务) audition(审计) username-->UID groupname-->GID http-->80port FQDN-->IP(hosts文件,DNS,mysql,NIS(networkinformation se

学习Samba加域之大话西游02

当前,几乎所有的公司,组织都会采用 Active Directory为它们的 Windows 桌面和服务器提供身份验证服务.在<Linux 身份验证策略>中,我们讲过让Linux 计算机也采用 Active Directory,这样做得好处显而易见,那就是集中管身份验证. 1.     一些基础概念如Samba和Winbind,PAM, NSS可以参考<Linux 身份验证策略>. 2.     怎么配置 Samba,参考 学习Samba基础命令详解之大话西游01. 3.    

CentOS (RedHat) 6.4 使用 OpenLDAP

OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中. 它主要包括下述4个部分: slapd - 独立LDAP守护服务 slurpd - 独立的LDAP更新复制守护服务 实现LDAP协议的库 工具软件和示例客户端 服务器:192.168.136.248(server) hostname:  example.com 客户端:192.1

SSSD-系统安全服务守护进程

参考url:http://blog.sina.com.cn/s/blog_588c88cb0100ywoh.html SSSD是红帽企业版Linux6中新加入的一个守护进程,该进程可以用来访问多种验证服务器,如LDAP,Kerberos等,并提供授权.SSSD是 介于本地用户和数据存储之间的进程,本地客户端首先连接SSSD,再由SSSD联系外部资源提供者(一台远程服务器). 这样做有一些几点优势: 1.避免了本地每个客户端程序对认证服务器大量连接,所有本地程序仅联系SSSD,由SSSD连接认证服

CentOS7添加入windows2008的AD域

采用域控对用户权限进行限制的时候,经常会出现需要将linux加入windows域,毕竟windows的AD域超级强大.用户名可以由windows进行统一管理,方便办公使用.下面简单介绍如何进行配置. Linux : CentOS Linux release 7.2.1511 (Core) Windows: windows 2008 R2 Enterprise DataCenter完全安装版 如何配置Windows AD域不进行介绍.请自行百度.很简单. windows 的域名为  sumonin

Kerberos+LDAP+NFSv4 实现单点登录

Kerberos : 身份认证LDAP : 目录信息服务NFSv4 : 网络共享 实验环境 : debian 9 三台主机:nfs服务器 : 192.168.1.103nfs客户机 : 192.168.1.102 即SSSD客户端+NFS客户端kdc服务器 : 192.168.1.101 即Kerberos+LDAP 以下 [email protected]:~# 表示以root根用户运行命令 一.安装NTP时间同步要使用Kerberos提供身份认证,各主机需时间同步 在一台主机上安装时间同步服

SELinux相关内容

SELinux访问控制机制:DAC:Discretionary Access Control,自主访问控制:基于文件或数据被文件系统赋予的访问权限(r,w,x)的方式实现的访问控制机制: MAC:Mandatory Access Control,强制访问控制: 对于文件或数据的访问权限不是针对用户身份来设定,当某个用户发起某个进程之后,该进程是否能够操纵或处理此文件或数据,取决于进程和文件是否具备可以匹配的domain和type: SELinux就是MAC访问控制机制在Linux系统中的实现:

Kerberos+LDAP+NFSv4 实现单点登录(下)

六.nfs客户机的安装nfs客户机也即SSSD客户机,需安装sssd和nfs-common 1.安装sssd会自动安装libsasl2-modules-gssapi-mit(非依赖)libsasl2-modules-gssapi-mit和libsasl2-modules-gssapi-heimdal两者冲突,安装libsasl2-modules-gssapi-heimdal也可以 [email protected]:~# apt-get install sssd sssd-krb5 sssd-l

pam之基础知识和常见模块

nns负责名称解析,认证的过程是pam来处理.2套系统是独立运行的. 认证本身也可以不借用nss,自己去找对应的解析库. 以用户登陆为例:    用户名的解析 :        USERNAME--> nsswitch.conf --> passwd : file--> /etc/passwd 密码的解析:        PASSWORD --> nsswitch.conf --> shadow : file --> /etc/shadow 认证:        USE