Linux-PAM 认证 模块Pluggable Authentication Modules for Linux 可插拨认证模块当用户访问服务器,服务程序将请求发送到PAM 模块,PAM 模块根据服务名称在/etc/pam.d 目录下选择一个对应的服务文件,最后根据服务文件的内容选择具体的PAM 模块进行处理。通过ldd 查看服务程序在编译时是否使用了libpam.so,决定服务程序是否支持PAM 认证。

具体的pam 文件放在/lib/security 目录下,服务文件放在/etc/pam.d 目录下

PAM 服务文件格式 eg:

auth required pam_security.so

auth required pam_stack.so

service=system-auth  service 表示调用子服务文件

PAM服务文件格式

Module-type:

auth 检查用户和密码,分配权限

account 检查账号是否过期,是否有权登录

session 从用户登录成功到退出的会话控制

password 控制用户改密码的过程

control-flag:

required 要求必须通过,否则结束退出

requisite 如果不通过还可继续向下认证,后面有一通过即可。

sufficient 通过则不需要向下认证

optional 可选项

常用PAM 服务文件

login -------/etc/pam.d/login

ipop3d -------/etc/pam.d/pop

vsftpd -------/etc/pam.d/ftp(编译安装)或 /etc/pam.d/vsftpd(rpm 安装)

sshd -------/etc/pam.d/sshd

su -------/etc/pam.d/su

imap -------/etc/pam.d/imap

/lib/security 目录下,各个pam 模块的作用,可参考/usr/share/doc/pam-0.99.3.0 下的帮助文件。

相同类型Module-type 组成一个堆栈。(认证堆栈)

常用PAM 模块

pam_access.so 控制访问者地址与账号名称

pam_listfile.so 控制访问者的账号名称或登录位置

pam_limits.so 控制为用户分配的资源

pam_rootok.so 对管理员(uid=0)无条件允许通过

pam_userdb.so 设定独立用户账号数据库认证

tty 终端设备

/usr/share/doc/pam-0.77/txts 下面有各个认证模块的作用说明

#more README.pam_securetty

测试一下 #touch /etc/nologin #sshoracle@192.168.0.99怎么也登陆不上 rm –f /etc/nologin 就可以了

pam_access.so 模块的使用

―――控制访问sshd 服务的主机和用户

1.修改需使用这个模块的服务文件,如

sshd: /etc/pam.d/sshd 添加 account required pam_access.so

2.修改模块的配置文件

/etc/security/access.conf

- : redhat : ALL EXCEPT 192.168.0. (格式)

3.测试

sshredhat@192.168.0.22

ssh

pam_access.so 根据主机、IP、用户、拒绝或允许访问。

pam_listfile.so 的应用( 比pam_access.so 更加详细控制 )

1.首先查看它的帮助文件,看它的具体格式,参数如何

#less  /usr/share/doc/pam-0.99.3.0/txts/

# more README.pam_listfile

Item       user,tty,group 说明列表文件中的内容.

sense   allow,deny 拒绝或允许文件中的用户file 指定一个文件,内容根据item 项来添加.

onerr    succeed,fail 当模块本身产生错误时,返回的值,如无法打开file 指定的文件,一般设为succeed.

2.将模块应用到sshd 服务

将上面添加的pam_access.so 清掉,然后在/etc/pam.d/sshd 中添加(第一行)

auth required pam_listfile.so item=user sense=deny file=/etc/denyuser nerr=succeed

注意添加的位置顺序,否则看不到效果

3.创建编缉列表文件

#echo “redhat”>/etc/denyuser

4.测试

#ssh -l redhat 192.168.0.22 失败

#ssh -l ** 192.168.0.22 成功

#w 显示已登录的用户及最近的一次操作

pam_limits.so 的应用

1.查看帮助文件,确认它的配置文件位置,参数模式

#less  /usr/share/doc/pam-0.99.3.0/txt/  README.pam_limits

用户名或组名

soft 软限制 hard 硬限制(不能达到的)

限制的内容,fsize 文件大小,nproc 最大进程数,maxlogins 用户登录次数

2.将模块应用到sshd 服务,修改服务文件

#vi /etc/pam.d/sshd 添加

session required pam_limits.so

session 控制用户进程的登录次数,文件大小,通过控制用户的会话进程来限制用户使用的资源

3.编缉pam_limits.so 的配置文件   修改模块的配置文件 vi /etc/security/limits.conf 添加以下的内容

redhat hard maxlogins 2    限制redhat 登录到sshd 服务的次数。

4.测试

#ssh -l redhat 192.168.0.22 第1 个

#ssh -l redhat 192.168.0.22 第2 个

表示同时最多可以有两个redhat

用户登录pam_rootok.so 的应用

#chfn 或chfn oracle 改变用户的finger 信息     more /etc/pam.d/chfn

普通用户使用这个命令修改信息时,需要输入密码才能使用,而root 用户则不需要。

分析:

#more /etc/pam.d/chfn

第一行为auth sufficient pam_rootok.so因为chfn 的pam 服务文件的第一行应用了pam_rootok.so模块,所以当root 用户使用chfn 时不需验证,不需要再往下,直接通过。

pam_userdb.so 模块需要一个db 数据库储存用户信息,具体如何使用可参考前面的vsftpd 虚拟用户。在使用PAM 模块时,注意参考README.pam 帮助。

#W查看登录的用户数

#wget 是下载东西,后面跟的是下载的地址。

./configure; make; make install       ---./configure –h(查看帮助)

linux pam认证 用户名,Linux-PAM 认证 模块相关推荐

  1. linux修改用户用户名,linux怎么修改用户名

    Linux 下如何修改用户名(同时修改用户组名和家目录) 有时候,由于某些原因,我们可能会需要重命名用户名.我们可以很容易地修改用户名以及对应的家目录和 UID. 本教程将会讨论这些东西.让我们先从修 ...

  2. linux 切换一般用户名,linux 切换用户名的方法

    1.Linux系统中用户切换的命令为su,su是switch user切换用户的缩写.可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户.从普通用户切换到root用户需要输入密码 ...

  3. linux创建中文用户名,linux更改用户名

    有时候,由于某些原因,我们可能会需要重命名用户名.我们可以很容易地修改用户名以及对应的家目录和 UID. 修改用户名 我们使用 usermod 来修改用户名.其语法为,$ usermod -l new ...

  4. linux mount 指定用户名,linux中mount/umount命令的基本用法及开机自动挂载方法

    本文介绍了linux中mount/umount命令的基本用法及开机自动挂载,具体方法如下: mount命令格式如下: 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a ...

  5. linux界面更改用户名,linux跳过用户名密码登陆界面方法

    使用的是CentOS 6.5环境 先修改 /etc/init/tty.conf文件 exec /sbin/mingetty --autologin root$TTY 红色为增加内容 在修改/etc/g ...

  6. linux用户双重认证登录,linux PAM 用户登录认证

    PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制.它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统 ...

  7. linux pam 解锁_linux中pam模块

    一.pam简介 Linux-PAM(linux可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式. 换句话说,不用(重新编写)重新编译一个包含PAM功能的应用程序,就可以改变它使 ...

  8. Linux用户安全及Linux PAM验证机制

    一.Linux身份验证 1.用户与系统管理员     >用户分为系统管理员与普通管理用户两大类.            >每个用户在系统中都有唯一的用户名,是用户使用系统的凭证.      ...

  9. linux第三方串口,[原创]Linux下的第三方登录认证实现

    本文的动机来自于一个项目,即:实现linux下的刷卡登录系统.因为使用ubuntu的缘故,接到项目时的第一感觉就是改写GDM.在GDM代码差不多看完以后,发现GDM认证采用了PAM机制.这种将认证交由 ...

  10. linux oracle pam,Linux技术之深入Linux PAM 体系结构(一)

    本文阐述了 Linux-PAM 的概念,同时还与读者一道分析了 Linux-PAM 的体系结构,作者希望籍此以加深读者对 Linux-PAM 的理解,以便对其有更深层的把握. 一.什么是Linux-P ...

最新文章

  1. Codeforces Global Round 8 C. Even Picture 题解[巧妙法构造题]
  2. undefined找不到函数情况总结
  3. 图像处理(二)Seam Carving算法-Siggraph 2007
  4. Cloud Toolkit 应用部署、文件上传支持上传进度实时展示
  5. 一键换ip命令_软网推荐:高效命令行备份更简单
  6. 【实验】修改数据文件名字的三种途径
  7. 计算一棵树的深度和宽度[Treeview的深度和宽度](多题头的表格问题解决的基础)...
  8. qt银行排队系统服务器代码,QT银行叫号排队系统
  9. xp计算机共享能否指定用户,XP怎么设置局域网共享?
  10. 面试官问:你在项目中做过哪些安全防范措施?
  11. 一、对文本文件进行数据粒度转换,即将文本文件personnel_data.txt中字段household_register的数据统一成省份,并且输出到文本文档personnel_data_new.tx
  12. unable to install wkhtmltopdf with patched qt in ubuntu 16.04
  13. 解决create-react-app 集成ts 报error :because it would overwrite input file. TS5055 问题
  14. 关于APP界面布局设计的八种优缺点
  15. Java实现图片压缩且不改变原图尺寸
  16. Python中Selenium模块的使用
  17. appcan中的微信分享与qq分享
  18. unity3d.com国际版下载
  19. RFC2616中文版
  20. iPhone 如何不越狱安装越狱软件

热门文章

  1. python判断为空行_Python pandas.DataFrame 找出有空值的行
  2. 【无标题】开发一个app到底要多少钱?有多贵?
  3. ltm是什么门的缩写_ltm的含义,ltm是什么的缩写,ltm的词语,ltm代表的意思
  4. python打开记事本并输入内容_打开记事本输入文字
  5. MySQL查询结果中Duration Time和Fetch Time的含义
  6. w8服务器dns修改,怎么修改DNS Win8修改DNS服务器地址的具体步骤图解
  7. 51nod3155 跳房子
  8. 关于JavaScript中万恶的this
  9. 防火墙之Iptables与Firewalld
  10. ANR系列之一:ANR显示和日志生成原理讲解