nss pam

简介:

nsswitch&PAM认证框架


nsswitch


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

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


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

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


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

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

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

作用:承上启下;

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

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


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

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

wKiom1nODPHiPTSkAAA1Nz8NE-s777.png

框架:

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/*

wKioL1nODOKTH8dAAABo1jVufAE339.png

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

 wKiom1nODWvSZPN2AAAdely9_4c378.png

   配置文件:每行一个定义;

   格式:<domain>  <type>  <item>  <value>

   <domain>:应用于哪些对象

     username

     @group

     *:所有用户

   <type>:限制的类型

     soft:软限制,普通用户自己可以修改;

     hard:硬限制,由root用户设定,且通过kernel强制生效;

     -:软硬使用相同限制;

   <item>:限制的资源类型

     nofile:所能够同时打开的最大文件数量;默认为1024;

     nproc:所能够同时运行的进程的最大数量;默认为1024;

     maxlogins:此用户的最大登录数

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





      本文转自Vincent一马 51CTO博客,原文链接:http://blog.51cto.com/mazhenbo/1983823,如需转载请自行联系原作者





相关文章
|
机器学习/深度学习 算法 Java
数论中的十个基本概念
数论中的十个基本概念
|
人工智能 自然语言处理 API
图片转音乐模型来了!Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!
图片转音乐模型来了!Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!
1509 1
|
存储 搜索推荐 数据可视化
【Elasticsearch】Elasticsearch索引创建与管理详解
【Elasticsearch】Elasticsearch索引创建与管理详解
1748 10
|
负载均衡 算法 前端开发
同步和异步
同步和异步
794 0
|
自然语言处理 Java 程序员
java、八大经典书籍,你看过几本?
java、八大经典书籍,你看过几本?
|
SQL 数据挖掘 数据处理
SQL中有哪些常用的函数?
【7月更文挑战第27天】SQL中有哪些常用的函数?
381 4
|
存储
ARM 堆栈寻址类型区分
该文介绍了堆栈的两种指向分类:向上生成型(递增堆栈)和向下生成型(递减堆栈),以及堆栈的两种数据状态:满堆栈(指针指向最后数据)和空堆栈(指针指向存放数据的位置)。满递增和满递减是在完整数据单元上操作,而空递增和空递减则允许自定义步长。文中通过图示说明了不同情况下的堆栈存储方式。
571 3
|
安全 算法 网络安全
C语言在安全领域的应用
本文探讨了C语言在网络安全中的应用,包括密码学算法实现、网络安全工具开发和安全协议实现。C语言因其高效性、可控性和跨平台性,常用于实现AES、RSA等加密算法,开发网络扫描器和入侵检测系统,以及实现SSL/TLS、IPSec等安全协议。代码示例展示了C语言如何进行AES加密解密。尽管C语言在安全领域有显著优势,但面对不断演变的威胁,持续学习和研究新的安全技术至关重要。
|
存储 Python
Python列表转字符串
Python列表转字符串
907 0
|
SQL 监控 druid
SpringBoot详解(中)
SpringBoot详解(中)
3361 12
SpringBoot详解(中)

热门文章

最新文章