nsswitch与pam

nsswitch:

Network Service Switch,网络服务转换,让多种应用程序能够灵活实现名称解析的通用框架

解析库:

文件、MySQL、NIS、LDAP、DNS

通用框架,与各存储交互的实现:

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

配置文件:/etc/nsswitch.conf

db: store1,store2,...

每种存储中查找的结果状态:STATUS => success | not found | unavail | tryagain

对应于每种状态参数的行为:ACTION => return | continue

pam:Pluggable Authentication Module,插入式认证模块

关于pam的更详细的知识请参考《Linux-pam sag.pdf》,百度网盘中有

认证库:

文件、MySQL、NIS、LDAP

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

/usr/lib64/security/,/lib64/security/

配置文件:/etc/pam.conf

/etc/pam.d/*.conf

通常每个应用使用一个单独的配置文件:

配置文件中每行定义一种检查规则,其格式如下:

type control module-path module-arguments

type:检查功能类别,主要有以下几种

auth:与帐号认证相关的认证和授权检查

account:与帐号管理相关的非认证功能

password:用户修改密码时密码检查规则

session:用户获取到服务之前或使用服务完成之后(还未退出时)要进行的一些附加性操作

control:同一种功能的多个检查之间如何进行组合。第一个失败了第二个怎么办

有两种实现机制:

a) 使用一个关键词来定义。例如sufficient,required,requisite

b) 使用一或多个"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:模块参数

模块:

pam_shells.so

pam_limits.so

该模块通过读取配置文件完成用户对系统资源的使用控制

/etc/security/limits.conf

/etc/security/limits.d/*

语法:

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

<domain>:

username

@group

*:所有用户

<type>:

hard:由root设定,通过kernel强制生效

soft:由用户自行修改,但不能超过hard的限制

-:hard和soft同时限定

<item>:

nofile:所能够同时打开的最大文件数量

nproc:所能够同时运行的最大进程数量

msqqueue:使用的POSIX消息队列能够占用的最大内存空间

sigpending:所能够使用的最大信号数量

<value>

ulimit命令:

ulimit -n #:所能够同时打开的最大文件数量

ulimit -u #:所能够同时运行的最大进程数量

时间: 2024-10-28 16:41:45

nsswitch与pam的相关文章

tcp_wrapper、sudo、nsswitch、pam

下面介绍的是服务与安全管理的tcp_wrapper.sudo.nsswitch.pam 一.tcp_wrapper 1.tcp_wrapper基础 --------------------tcp封装器 tcp_wrapper依赖的库文件:libwrap.so (1).判断是否受tcp_wrapper访问控制:动态链接(libwrap.so库文件).静态链接(strings命令) 动态链接至libwrap.so库的应用程序:# ldd /PATH/TO/APP_FILE | grep libwra

rsyslog、nsswitch、pam

rsyslog: 日志:历史事件日志历史事件:时间,事件事件级别(日志级别):事件的关键性程度: 事件:系统引导启动.应用程序启动.应用程序尤其是服务类应用程序运行过程中的一些事件:系统日志服务:syslog:syslogd: systemklogd:kernel 事件格式较为简单时,可统一由syslog进行记录:事件产生的日期时间 主机 进程[pid] :事件内容 支持C/S架构:可通过UDP或TCP协议提供日志记录服务: rsyslog:rsyslogd 特性:多线程:UDP,TCP,SSL

Linux自学笔记——nsswitch and pam

nsswitch:name service switch 通用框架,与各种类型存储进行交互的公共实现: 实现:/usr/lib64/libnss*,/lib64/libnss* 框架:libnss 驱动:libnss_files- 为每一种用到解析库的应用通过配置定义其位置: /etc/nsswitch.conf db: store1   store2  - 例如: passwd:files hosts:files   dns 解析库: 文件.关系型数据管理系统(mysql).NIS.LDAP.

linux从小白到linux资深专家之路

为什么学Linux,理由如下:    Linux是免费:    Linux是开源的,你可以修改源代码:    Linux是开放的,有广泛的社区:    学习Linux可以更好的掌握计算机技术:    Linux是未来发展的趋势:    Linux有非常多的发行版本,你可以根据需要做出不同的选择:    Linux让你多了一个选择:    Linux是一种自由哲学,一种开源的信仰:    学好linux,可以装逼,最重要一点,技多不压身. 学习linux不要一下子就上来学架构之类的,一定要打好基础

第十章 网络文件共享服务之ftp

10.1 ftp介绍 网络文件共享服务主流的主要有三种,分别是ftp.nfs.samba.在上一章中我们已经了解了nfs,本章我们将来说说ftp. FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输. FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件. 在FTP的使用当中,用户经常遇到两种概念:下载和上传 下载(Download)文件就是从远程主机拷贝文件至自己的计算

Linux入门(一)

一.Linux基础入门 获取知识--->把知识转换成技能 把知识转换成技能: 1.给你一份文档,你就能够做出来,//可能需要数百遍的练习 1.把知识转换成技能的速度 2.把技能转换成生产力的速度 3.只看结果,不看努力 2/8法则,有20%的人,掌握着80%的技能 Tools介绍: Adobe Acrobat Professional7.0 200M //编辑PDf文档 VMware workstation version 12只有120M,短小精悍 32位OS的寻址能力只有4G=2^32次方=

FTP使用MariaDB完成虚拟用户认证

文件传输协议(英文:File Transfer Protocol,:FTP)是用於在上行文件的一套.它属于网络传输协议的应用层.FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样.但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长:并且不时的必执行一些冗长的登陆进程. FTP是一个应用层协议,明文传输,使用C/S架构,其服务端监听在21/TCP和20/TCP,21号端口为命令端口即控制端口,20号端

通过grub-install命令把grub安装到u盘-总结

通过grub-install命令把grub安装到u盘 ①准备一个u盘.容量不限.能有1MB都足够了. ②把u盘格式化(我把u盘格式化成FAT.fat32格式了,最后证明也是成功的).③开启linux系统,打开命令行终端.进入root模式,然后输入命令行:mount   /dev/sdb3   /tmp/bootgrub-install --root-directory=/tmp/boot --no-floppy /dev/sdb 注意:上面/dev/sdb是我的u盘,在linux系统里的盘符吧,

Linux 系统裁剪笔记 软盘2

第一步:裁减内核打开终端,输入:cd /usr/src/linux2.4,然后输入make xconfig.现在编译内核正式开始了1.1 "code maturity level options"选项,代表代码的成熟等级,因为这是一个试验的部分,我们不需要,所以关闭它.1.2 "Loadable module support"可加载模块支持可加载模块是指内核代码(kernel code)的一些片断,比如驱动程序,当编译内核的时候它们也被单独编译.因此,这些代码不是内