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、DNS

每种存储中的查找结果状态:

STATUS => success | not found | unavail | tryagain

对应与每种状态结果的行为(action):

return | continue

例子:

hosts: files nis  [NOTFOUND=return]  dns

getent命令:

getent  DATABASE  [key]

pam:pluggable authentication module

认证库:存储

多种类型的存储:文件、关系型数据管理系统、LDAP、NIS

pam:通用框架,提供了与各种类型存储进行交互的公共实现、以及多种辅助类的功能:

/lib64/security/*

配置文件:为各种调用了pam的应用提供其专用配置:

通用配置文件:/etc/pam.conf,可为每一种调用pam完成认证功能的应用程序提供配置;

专用配置文件:/etc/pam.d/*,通常专用于为某种特定的应用程序提供配置;

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

配置文件格式:

通用配置文件:

application    type control          module-path module-arguments

专用配置文件:

type      control         module-path   module-arguments

type:检查的功能类别

auth:账号的认证和授权;

account:与账号管理相关的非认证类的功能;

password:用户修改密码时密码复杂度检查机制;

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

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

两种实现机制:

1)      简单实现:使用一个关键词来定义

2)      详细实现:使用一个或多个“status=action”

简单实现:

required:必须通过检查;否则,即为失败;无论成功还是失败,都需继续由后续同种功能的其它模块进行检查;

requisite:一票否决;检测失败就直接返回失败;检测成功,由后续同种功能的其它模块进行检查;

sufficient:一票通过,检测成功就直接返回成功;检测失败,则由后续同种功能的其它模块进行检查;

optional:可选的,参考性控制机制;

include;调用其他配置文件中的同种功能的检测机制;

详细实现:

[status1=action1,status2=action2,…]

status:返回状态

action:采取的行为,比如ok,done,die,bad,ignore,…

module-path:模块文件路径;

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

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

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

模块示例:

pam_limits.so:资源限制

在用户级别实现对其可用的资源的限制,例如可打开的文件数量,可运行的进程数量,可用的内存空间;

修改限制的实现方式:

1)      ulimits命令;

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;

ulimit命令;用于调整软限制:

-n   最多的打开的文件描述符个数;

-u    最大的用户进程数

-S    使用‘soft’(软)资源限制

-H   使用‘hard’(硬)资源限制

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

Linux自学笔记——nsswitch and pam的相关文章

Linux自学笔记--基础命令date,cal等

逆水行舟,不进则退: date命令: 我们可以来man一下date命令,可以在上面看出 date的含义为 - print or set the system date and time,我们从以下几方面对date命令进行阐述. 1.   显示时间 date[OPTION]... [+FORMAT] format:格式符号 %D: %F: %T: 在屏幕中输入单独的date命令可以显示系统的时间: 同时我们也可以显示自己想要的时间显示格式: 2.   设置时间 date[-u|--utc|--un

linux自学笔记——RAID级别特性以及软RAID的实现

RAID,Redundant Arrays of Inexpensive Disks 廉价冗余磁盘阵列,又称为Redundant Arrays of Independent Disks,独立冗余磁盘阵列. 其基本原理就是利用多块较小的磁盘通过不同的组织方式,组成一个大的磁盘组,以提高磁盘的IO能力和耐用性.由于组织方式不同,所以把RAID分为多个级别.而最常用的是RAID0,RAID1,RAID5,RAID6,RAID10,RAID01.下面我们将对以上的级别进行比较分析. 级别:level R

Linux自学笔记——Centos启动流程

Centos启动流程大概为:POST --> Boot Sequence(BIOS)--> Boot Loader (MBR) --> Kernel(ramdisk) --> rootfs (readonly)-->switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --> 系统初始化脚本 --> 关闭或启动对应级别下的服务 --> 启动终端.

Linux自学笔记——Selinux简介

SElinux是美国国家安全局(NSA)对于强制访问控制的实现,是linux历史上最杰出的新安全子系统.NSA是在Linux社区的帮助下开发的一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在它的任务中所需要的文件.SElinux默认安装在Fedora和RedHat Enterprise Linux上,也可以作为其他发行版上容易安装的包得到. DAC,自主访问控制,任何程序对其资源享有完全的控制权,每个用户或进程可以随意修改自己的文件的权限,将其他权限授予给其他人而具有任意的访问权

Linux自学笔记——linux文件系统

Linux的文件系统 根文件系统(rootfs),内核挂载的第一个文件系统,在启动流程的这一篇文章里有提到: LSB,FHS(Filesystem  Herirache Standard) 常用的文件系统目录:/etc,/usr,/var,/root/,/home,/dev 目录介绍:(以下截图很多是目录内容的部分截图) /boot:引导文件存放目录,内核文件(vmlinuxz).引导加载器(bootloader,grub)都存放于此目录: /bin:供所有用户使用的基本命令:不能关联至独立分区

Linux自学笔记——计算机基础以及命令帮助的获取

计算机基础知识: 计算机的主要组成部分: 运算器.控制器.存储器.输入设备.输出设备 CPU:运算器,控制器 bus:总线 memory: 编址存储设备 IO:与外部部件交互 程序的运行模式: 用户空间:user space,us 内核空间:system space POS:Portable OperationSystem POSIX API:编程接口: 运行程序格式: Windows:EXE,dll(dynamic link library) Linux:ELF,so(shared objec

Linux 自学笔记——内核管理初步及编译

Linux Kernel: 内核设计体系:单内核.微内核: 内核的组成部分: 1.Kernel:内核核心,一般为bzimage,通常位于/boot目录,名称为vmlinuz-VERSION-release: 2.Kernel object:内核对象,即内核模块,一般放置于/lib/modules/VERSION-release/,maninfo命令通过读取此文件的信息以显示相关信息: 内核模块与内核核心版本一定要严格匹配: []:N: [M]:Module,编译进模块中: [*]:Y,编译进内核

Linux自学笔记——grub应用

GRUB(Boot Loader) GRUB,GRand Unified Bootlader ,是一个来自GUN项目的多操作系统启动程序.GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统.GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数. grub版本: grub 0.x:grub(legacy) centos 5,6 grub 1.x:grub2              centos 7 grubleg

Linux自学笔记——linux进程及作业管理

内核的功用主要有进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能这几个方面,本文主要讨论linux进程及作业管理. 进程管理: 进程,process,运行中程序的一个副本,且存在生命周期: 进程分为CPU bound和I/Obound. CPU bound:CPU密集型(类似于高清视频) I/O bound:IO密集型(编辑器等频繁IO操作) Linux内核存储进程信息的固定格式为:task struct(结构体) 多个任务的task struct组件的链表:task list 进程创