当前位置:首页 » 操作系统 » linux的pam

linux的pam

发布时间: 2023-03-20 10:57:17

A. Windows域怎么限制用户登录linux系统

如果要在 Windows 域中限制用户登录 Linux 系统,可以使用以下步骤:

  • 在 Windows 域控制器上,创建一个新的用户组,并将需塌启衫要限制登录 Linux 系统的用户添加到该组中。

  • 在 Linux 系统上,使用 PAM(Pluggable Authentication Moles)模块来限制用户登录。在 PAM 配置文件中,可以使用 pam_access 模块来限制用户登录。

  • 在 PAM 配置文旁好件中添加如下条目,以限制 Windows 域中创建的那个用户组中的用户登录 Linux 系统:

account required pam_access.so deny=group=Windows_Group

其中 “Windows_Group” 是 Windows 域中创建的那个用户组的名称团腔。

4.保存配置文件并重启服务,这样就可以限制 Windows 域中指定用户组的用户登录 Linux 系统了。

注意:这只是一种可能的做法,具体实现可能因环境不同而有所差异。

B. PAM 教程:二、Linux-PAM 的配置文件

本系列讲解了 Linux-PAM 的工作机制和配置方式,并利用几个 Linux-PAM 模块做一些有趣的小实验。附录中介绍了一些常用的 Linux-PAM 模块。

本文的目标读者是期望了解 PAM 认证机制的 Linux 用户或者系统管理员。如果您是开发人员,希望编写一个使用 PAM 认证的应用程序,或者是为 PAM 写插件的开发人员,本文的内容可能并不能满足您的需求,请参阅 《Linux-PAM应用开发搭汪指南》 (英文)和 《Linux-PAM 模块开发指南》 (英文)。

PAM 的各个模块一般存放在 /lib/security/ 或 /lib64/security/ 中,以动态库文件的形式存在(可参阅 dlopen(3) ),文件名格式一般为 pam_*.so 。PAM 的配置文件可以是 /etc/pam.conf 这一个文件,也可以是 /etc/pam.d/ 文件夹内的多个文件。如果 /etc/pam.d/ 这个文件夹存在,Linux-PAM 将自动忽略 /etc/pam.conf 。

/etc/pam.conf 类型的格式如下:

/etc/pam.d/ 类型的配置文件通常以每一个使用 PAM 的程序的名称来命令。比如 /etc/pam.d/su , /etc/pam.d/login 等等。还手枝败有些配置文件比较通用,经常被别的配置文件引用,也放在这个文件夹下,比如 /etc/pam.d/system-auth 。这些文件的格式都保持一致:

不难看出,文件夹形式的配置文件中只是没有了服务名称这一列:服务名称已经是文件名了。

由于很难在时下的发行版本中找到使用 /etc/pam.conf 这一独立文件作为 PAM 配置的例子,此处仅就 /etc/pam.d/ 格式举例。在笔者安装的 CentOS(x64) 7.2.1511 中, /etc/pam.d/login 的内容如下:

# 表示注释。

每一行代表一条规则。但也可以用 \ 来放在行末,来连接该行和下一行。

例子的最后一行开头有一个短横线 - ,意思是如果找不到这个模块,导致无法被加载时,这一事件不会被记录在日志中。这个功能适用于那些认证时非必需的、安装时可能没被安装进系统的模块。

我们在[第一篇]({% post_url 2016-03-30-pam-tutorial-1-intro %})中接触了 Linux-PAM 的四种工作类别(type)。在上面的例子中,工作类别作为第一列出现。

讲到这里,我们有必要聊一聊 PAM 的 流程栈(stack) 概念:它是认证时执行步骤和规则的堆叠。在某个服务的配置文件中,它体现在了配置文件中的自上而下的执行顺序中。栈是可以被引用的,即在一个栈(或者流程)中嵌入另一个栈。我们之后和它会有更多的接触。

第二列为 控制模式(control) ,用于定义各个认证模块在给出各种结果时 PAM 的行为,或者调用在别的配置文件中定义的认证流程栈。该列有两种形式,一种是比较常见的“关键字”模式,另一种则是用方括号( [] )包含的“返回值=行为”模式。

“关键字”模式下,有以下几种控制模式:

“返回值=行为”模式则更为复杂,其格式如下:

其中, valueN 的值是各个认证模块执行之后的返回值。有 success 、 user_unknown 、 new_authtok_reqd 、 default 等等数十种。其中, default 代表其他所有没有明确说明的返回值。返回值结果清单可以在 /usr/include/security/_pam_types.h 中毕颤找到,也可以查询 pam(3) 获取详细描述。

流程栈中很可能有多个验证规则,每条验证的返回值可能不尽相同,那么到底哪一个验证规则能作为最终的结果呢?这就需要 actionN 的值来决定了。 actionN 的值有以下几种:

我们在前文中已经介绍了控制模式(contro)的“关键字”模式。实际上,“关键字”模式可以等效地用“返回值=行为”模式来表示。具体的对应如下:

正如前文所述,模块一般保存在 /lib/security 或 /lib64/security 中(取决于操作系统位数)。Linux-PAM 配置文件中的模块位置可以是相对于上述文件夹的相对路径,也可以是文件的全路径。

模块参数用空格与模块路径相隔。该参数将只和特定模块相关,因此某个模块的文档中一定包含其参数的信息。如果需要在单个参数中使用空格,可以将整个参数用方括号( [] )包裹起来。

C. linux中的PAM到底是什么 如何使用配置呢 麻烦说的通俗点

简单地说,PAM主要是由一组共享库文件(也就是后缀名为.so文件)和一些配置文败段件组成的用于系统服务授权的一套东西,其中,PAM 就是 Pluggable Authentication Moles 这几个英文单词的缩写。当你在请求服务的时候,具有PAM认证功能的应用程序将与这些.so文件进行交互,以便得知是否可以授权给发起请求的用户来使用服务,比如su, vsftp, httpd,等。如果认证成功了,那么这个用户便可以使用服务或完成命令,如果认证失败了,那么这个用户将不能使用服务,同时,PAM将向厅枯纤指定的log文件写入警告信息。我们可以将PAM看作是一个中间裁判,它不依赖于任何应用或服务。你完全可以升级这些应用或服务而不必管PAM的共享库的更新扮仿或升级,反之亦然。所以它非常的灵活。

D. linux尝试登录失败后锁定用户账户的两种方法

pam_tally2模块(方法一)

用于对系统进行失败的ssh登录尝试后锁定用户帐户。此模块保留已尝试访问的计数和过多的失败尝试。

配置

使用 /etc/pam.d/system-auth 或 /etc/pam.d/password-auth 配置文件来配置的登录尝试的访问

注意:

auth要放到第二行,不然会导致用户超过3次后也可登录。

如果对root也适用在auth后添加 even_deny_root .

auth required pam_tally2.so deny=3 even_deny_root unlock_time=600

pam_tally2命令

查看用户登录失败的信息

解锁用户

pam_faillock 模块(方法二)

在红帽企业版 Linux 6 中, pam_faillock PAM 模块允许系统管理员锁定在指定次数内登录尝试失败的用户账户。限制用户登录尝试的次数主要是作为一个安全措施,旨在防止可能针对获取用户的账户密码的暴力破解

通过 pam_faillock 模块,将登录尝试失败的数据储存在 /var/run/faillock 目录下每位用户的独立文件中

配置

添加以下命令行到 /etc/pam.d/system-auth 文件和 /etc/pam.d/password-auth 文件中的对应区段:

auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600

auth sufficient pam_unix.so nullok try_first_pass

auth [default=die] pam_faillock.so authfail audit deny=3

account required pam_faillock.so

注意:

auth required pam_faillock.so preauth silent audit deny=3 必须在最前面。

适用于root在 pam_faillock 条目里添加 even_deny_root 选项

faillock命令

查看每个用户的尝试失败次数

$ faillock

test:

When Type Source Valid

2017-06-20 14:29:05 RHOST 192.168.56.1 V

2017-06-20 14:29:14 RHOST 192.168.56.1 V

2017-06-20 14:29:17 RHOST 192.168.56.1 V

解锁一个用户的账户

E. Linux 密码复杂度设置pam_pwquality、pam_passwdqc(centos7)

1、Linux对应的密码策略模块有:pam_passwdqc 和 pam_pwquality 。其中pam_passwdqc模块对应的是/etc/login.defs,pam_pwquality对应的是/etc/security/pwquality.conf
2、模块的添加方法:/etc/pam.d/passwd
password required pam_pwquality.so retry=3
3、模块的配置方法有两种:
一、password required pam_pwquality.so dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0
二、添加到/etc/security/pwquality.conf 中
4、/etc/security/pwquality.conf详解:
retry=N:定义登录/修改密码失败时,可以重试的次数;
Difok=N:定义新密码中必须有几个字符要与旧密码不同。但是如果新密码中有1/2以上的字符与旧密码不同时,该新密码将被接受;
minlen=N:定义用户密码的最小长度;
dcredit=N:定义用户密码中必须包含多少个数字;
ucredit=N:定义用户密码中必须包含多少个大写字母;
lcredit=N:定义用户密码中必须包含多少个小些字母;
ocredit=N:定义用户密码中必须包含多少个特殊字符(除数字、字母之外);
其中 =-1表示,至少有一个
5、/etc/login.defs详解:
PASS_MAX_DAYS 99999 #密码的最大有效期, 99999:永久有期
PASS_MIN_DAYS 0 #是否可修改密码,0可修改,非0多少天后可修改
PASS_MIN_LEN 5 #密码最小长度,使用pam_cracklib mole,该参数不再有效
PASS_WARN_AGE 7 #密码失效前多少天在用户登录时通知用户修改密码
6、实际生产环境配置
/etc/security/pwquality.conf :
minlen = 8
minclass = 1
maxrepeat = 0
maxclassrepeat = 4
lcredit = -1
ucredit = -1
dcredit = -1
ocredit = -1
difok=5
/etc/login.defs:
PASS_MAX_DAYS 90
PASS_MIN_LEN 12
PASS_MIN_DAYS 7
PASS_WARN_AGE 30
UMASK 077

F. Linux认证的概念

Linux认证的概念

RHCA(Red Hat Certified Architect),是RedHat公司在2004年推出的顶级认证,也是Linux界公认的操作系统最高级认证。下面是我整理的关于Linux认证的概念,欢迎大家参考!

Linux用户认证方法简介

当今IT环境中,任何计算机系统都要充分考虑设计、使用和运行过程中的安全性。所以在目前主流操作系统的各个环节当中都增加了很多安全方面的功能和特性,而在众多的安全特性和功能中有相当多的技术是确保用户鉴别和身份认证方面的安全性的。

所谓用户鉴别,就是用户向系统以一种安全的方式提交自己的身份证明,然后由系统确认用户的身份是否属实的过程。换句话说,用户鉴别是系统的门户,每个用户进入到系统之前都必须经过鉴别这一道关。 而所谓认证安全,简而言之就是计算机系统确认了用户是经过授权的合法用户之后才能允许访问。安全认证最常用的方式是比对用户输入和预存于数据库中的密码。

不过在用户进行身份鉴别和安全认证的过程中,肯定会涉及几个核心问题。例如:

如何真正实现正确鉴别用户的真实身份?

在鉴别用户合法身份之后,如何确定用户可以对哪些资源进行访问?

如何控制用户以何种方式来访问计算机资源?

如何对用户的安全访问随时随地按需调整?

上述这些问题都是在设计鉴别和认证程序过程中需要充分考虑和精心设计的。而在Linux类的操作系统中,这些问题的处理实际上有一套完整的流程和机制。

在Linux类的操作系统中,最初用户鉴别过程就像各种Unix操作系统一样:系统管理员为用户建立一个帐号并为其指定一个口令,用户用此指定的口令登录之后重新设置自己的口令,这样用户就具有了一个只有它自己知道的口令或者密码。一般情况下,用户的身份信息在Linux系统中存放在/etc/passwd文件当中,这实际上是一个拥有简单格式的数据库表,通过":"作为分隔符分隔出多个字段,其中包括用户的名称、用户ID、组ID、用户说明、主目录和登录使用的shell等相关信息。而用户口令经过加密处理后存放于/etc/shadow 文件中。也是一个格式类似的数据库表,除了用户名和经过加密之后的密码之外,还包括多个对密码有效期进行定义的字段,包括密码有效时间、密码报警时间等。

用户登录的时候,登录服务程序提示用户输入其用户名和口令,然后将口令加密并与/etc/shadow 文件中对应帐号的加密口令进行比较,如果口令相匹配,说明用户的身份属实并允许此用户访问系统。这种思想基于只有用户自己知道它的口令,所以输入的口令是正确的话,那么系统就认定它是所声称的那个人。

在Linux类操作系统中,定义用户信息和密码信息的字段和格式都需要符合标准的Linux Naming Service Switch定义,即NSS定义。因此用户信息只要保证满足NSS规范,就可以来源于本地passwd和shadow之外的其它信息数据库和认证源。所以在此基础上还派生出一些其它认证解决方案。例如NIS、LDAP等,都可作为存放用户信息的数据库,而存放用户口令或者鉴别用户身份的数据库,可以采用专用于网络环境的Kerberos以及智能卡鉴别系统等方式。

这一整套的鉴别和认证方案貌似无懈可击,但是将这种解决方案真正应用到操作系统中的话就会发现一些问题:

第一,在操作系统上所包含的认证不仅仅只涉及到系统登录和访问,在系统外围往往提供了众多的应用程序,相当多的应用程序在访问过程中是有认证需求的。那么是否需要针对每一个应用程序都得加入认证和鉴别的功能?如果要,那么无论从程序的开发和使用管理角度来讲,工作量都将成倍增加;如果不要,则系统级的用户鉴别和安全认证与应用程序没有任何关系,意味着不管用户是否需要登录系统,但是对应用程序的访问都将缺乏最基本的安全性。

第二,如果针对每一个应用程序都开发用户鉴别和认证的功能,那么一旦发现所用的.算法存在某些缺陷或想采用另一种鉴别和认证方法时,开发者或者用户都将不得不重写(修改或替换)应用程序,然后重新编译原程序。

所以,尤其是当实现鉴别功能的代码以通常方法作为应用程序一部分一起编译的时候,上述问题将十分突出。很明显,传统的身份鉴别和用户认证方式一旦整合到实际的操作系统中,在实用当中缺乏灵活性。

鉴于以上原因,Linux操作系统的开发者和设计人员开始寻找一种更佳的替代方案:一方面,将鉴别功能从应用中独立出来,单独进行模块化的设计,实现和维护;另一方面,为这些鉴别模块建立标准的应用程序接口即API,以便众多的应用程序能方便地使用它们提供的各种功能;同时,鉴别机制对上层用户(包括应用程序和最终用户)要求一定要是透明的,这样可以对使用者隐藏其中比较复杂的实现细节。

可插拔认证模块PAM的基本概念

事实上直到1995年的时候,SUN的研究人员才提出了一种满足以上需求的方案,这就是可插拔认证模块(Pluggable Authentication Mole--PAM)机制,并首次在其操作系统 Solaris 2.3上部分实现。

可插拔认证模块(PAM)机制采用模块化设计和插件功能,使用户可以轻易地在应用程序中插入新的认证模块或替换原先的组件,同时不必对应用程序做任何修改,从而使软件的定制、维持和升级更加轻松。因为认证和鉴别机制与应用程序之间相对独立。所以应用程序可以通PAM API来方便地使用PAM提供的各种鉴别功能而不必了解太多的底层细节。此外PAM的易用性也较强,主要表现在它对上层屏蔽了鉴别和认证的具体细节,所以用户不必被迫学习各种各样的鉴别方式,也不必记住多个口令;又由于它实现了多鉴别认证机制的集成问题,所以单个程序可以轻易集成多种鉴别机制,如Kerberos和Diffie - Hellman等认证机制,但用户仍可以用同一个口令登录而且感觉不到采取了各种不同的鉴别方法。

在广大开发人员的努力下,各版本的UNIX系统陆续增加和提供了对PAM应用的支持。其中Linux-PAM是专门为Linux操作系统实现的,众多的Linux操作系统包括Caldera、Debian、Turbo、Red Hat、SuSE 及它们的后续版本都提供对PAM的支持。而FreeBSD从3.1版本也开始支持PAM。而且除了具体实现方法上多少有些不同外,各种版本Unix系统上PAM的框架是相同的。所以我们在这里介绍的Linux的PAM框架知识具有相当的普遍性,而且在下文介绍其框架过程中可以看到,我们并没有刻意区分Unix PAM与Linux PAM这两个技术术语。

PAM的分层体系结构

PAM 为了实现其插件功能和易用性,采取了分层设计思想。就是让各鉴别模块从应用程序中独立出来,然后通过PAM API作为两者联系的纽带,这样应用程序就可以根据需要灵活地在其中"插入"所需要的鉴别功能模块,从而真正实现了在认证和鉴别基础上的随需应变。实际上,这一思路也非常符合软件设计中的"高内聚,低耦合"这一重要思想。

PAM 的体系如下简图所示:

从上面的结构图可以看出,PAM 的API起着承上启下的作用,它是应用程序和认证鉴别模块之间联系的纽带和桥梁:当应用程序调用PAM API 时,应用接口层按照PAM配置文件的定义来加载相应的认证鉴别模块。然后把请求(即从应用程序那里得到的参数)传递给底层的认证鉴别模块,这时认证鉴别模块就可以根据要求执行具体的认证鉴别操作了。当认证鉴别模块执行完相应的操作后,再将结果返回给应用接口层,然后由接口层根据配置的具体情况将来自认证鉴别模块的应答返回给应用程序。

上面描述了PAM的各个组成部分以及整体的运作机理。下面将对PAM中的每一层分别加以介绍。

第一层:模块层。模块层处于整个PAM体系结构中的最底层,它向上为接口层提供用户认证鉴别等服务。也就是说所有具体的认证鉴别工作都是由该层的模块来完成的。对于应用程序,有些不但需要验证用户的口令,还可能要求验证用户的帐户是否已经过期。此外有些应用程序也许还会要求记录和更改当前所产生的会话类的相关信息或改变用户口令等。所以PAM在模块层除了提供鉴别模块外,同时也提供了支持帐户管理、会话管理以及口令管理功能的模块。当然,这四种模块并不是所有应用程序都必需的,而是根据需要灵活取舍。比如虽然login可能要求访问上述所有的四种模块,但是su可能仅仅需要使用到鉴别模块的功能即可。至于如何取舍则涉及到接口层的PAM API和配置文件,这部分内容将在后文中加以介绍。

第二层:应用接口层。应用接口层位于PAM结构的中间部分,它向上为应用程序屏蔽了用户鉴别等过程的具体细节,向下则调用模块层中的具体模块所提供的特定服务。由上图可以看出,它主要由PAM API和配置文件两部分组成,下面将逐一介绍。

PAM API可以分为两类:一类是用于调用下层特定模块的接口,这类接口与底层的模块相对应,包括:

鉴别类接口:pam_authenticate()用于鉴别用户身份,pam_setcred()用于修改用户的私密信息。

帐号类接口:pam_acct_mgmt()用于检查受鉴别的用户所持帐户是否有登录系统许可,以及该帐户是否已过期等。

会话类接口:包括用于会话管理和记帐的 pam_open_session()和 pam_close_session()函数。

口令类接口:包括用于修改用户口令的 pam_chauthtok()。

第二类接口通常并不与底层模块一一对应,它们的作用是对底层模块提供支持以及实现应用程序与模块之间的通信等。具体如下:

管理性接口: 每组 PAM 事务从 pam_start()开始,结束于 pam_end()函数。接口 pam_get_item()和 pam_set_item()用来读写与 PAM 事务有关的状态信息。同时,能够用 pam_str()输出 PAM 接口的出错信息。

应用程序与模块间的通讯接口:在应用程序初始化期间,某些诸如用户名之类的数据可以通过 pam_start()将其存放在PAM接口层中,以备将来底层模块使用。另外底层模块还可以使用 pam_putenv()向应用程序传递特定的环境变量,然后应用程序利用pam_getenv()和pam_getenvlist()读取这些变量。

用户与模块间的通讯接口:pam_start()函数可以通过会话式的回调函数,让底层模块通过它们读写模块相关的鉴别信息,比如以应用程序所规定的方式提示用户输入口令。

模块间通讯接口:尽管各模块是独立的,但是它们仍然能够通过pam_get_item()和pam_set_item()接口共享某些与鉴别会话有关的公用信息,诸如用户名、服务名、口令等。此外,这些API还可以用于在调用pam_start()之后,让应用程序修改状态信息。

读写模块状态信息的接口:接口pam_get_data()和pam_set_data()用以按照PAM句柄要求访问和更新特定模块的信息。此外,还可以在这些模块后附加一个清除数据函数,以便当调用 pam_end()时清除现场。

由于 PAM 模块随需加载,所以各模块始化任务在第一次调用时完成。如果某些模块的清除任务必须在鉴别会话结束时完成,则它们应该使用 pam_set_data()规定清除函数,这些执行清除任务的函数将在应用程序调用 pam_end()接口时被调用。

;

G. 利用linux pam实现安全验证与管理

大家都知道现在很多电脑软件都有限制用户登陆失败次数的限制,Linux也是如此,当你登录失败多次后就可以限制用户登录,从而起纯拆到保护电脑安全的作用,通过PAM模块即可实现,下面随我一起来了解下吧。 Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失兄嫌败次数,如果次数达到设置的阈值,则锁定用户。 编译PAM的配置文件# vim /etc/pam.d/login #%PAM-1.0 auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10 auth [user_unknown=ignore success=ok ignoreignore=ignore default=bad] pam_securetty.so auth include system-auth account required pam_nologin.so account include system-auth password include system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session optional pam_keyinit.so force revoke session required pam_loginuid.so session include system-auth session optional pam_console.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open 各参数解释 even_deny_root 也限制root用户; deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户 unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒; root_unlock_time 设定root用户锁定后,多少时间后解锁羡裤手,单位是秒; 此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。 在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的! 最终效果如下图 这个只是限制了用户从tty登录,而没有限制远程登录,如果想限制远程登录,需要改SSHD文件# vim /etc/pam.d/sshd #%PAM-1.0 auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10 auth include system-auth account required pam_nologin.so account include system-auth password include system-auth session optional pam_keyinit.so force revoke session include system-auth session required pam_loginuid.so 同样是增加在第2行! 查看用户登录失败的次数 [root@node100 pam.d]# pam_tally2 --user RedHat Login Failures Latest failure From redhat 7 07/16/12 15:18:22 tty1 解锁指定用户 [root@node100 pam.d]# pam_tally2 -r -u redhat Login Failures Latest failure From redhat 7 07/16/12 15:18:22 tty1 这个远程ssh的时候,没有提示,我用的是Xshell,不知道其它终端有没提示,只要超过设定的值,输入正确的密码也是登陆不了的! 上面就是Linux通过PAM模块限制用户登录次数的方法,最好设置下,以免别人用工具破解你的电脑,窃取你的隐私信息。

H. linux中哪些无关账号需要锁定

linux中需要锁定账号的情况为:

用户在指定时间内输入错误密码的次数达到了相应的次数,账户锁定策略就会将该用户禁用。

linux对账户的锁定功能比windows的要更加广泛,强大,windows组策略中的限制,只是在系统层面的限制。

而linux借助pam(Pluggable Authentication Moles,插件式认证模块)的强大,不单止可以系统层面实现,还能在各中支持pam的应用中实现这种安全锁定策略。

linux中PAM通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。

PAM最初是集成在Solaris中,目前已移植到其它系统中,如Linux、SunOS、HP-UX9.0等。

PAM的配置是通过单个配置文件/etc/pam.conf。RedHat还支持另外一种配置方式,即通过配置目录/etc/pam.d/,且这种的优先级要高于单个配置文件的方式。

(8)linux的pam扩展阅读:

在 Linux 中锁定、解锁和检查给定用户帐户的状态的操作:

找到同时有“password”和“pam_unix.so”字段并且附加有“remember=5”的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在/etc/security/opasswd下面)。

找到同时有“password”和“pam_cracklib.so”字段并且附加有“minlen=10”的那行,它表示最小密码长度为(10-类型数量)。这里的“类型数量”表示不同的字符类型数量。PAM提供4种类型符号作为密码(大写字母、小写字母、数字和标点符号)。

如果密码同时用上了这4种类型的符号,并且你的minlen设为10,那么最短的密码长度允许是6个字符。

使用配置目录/etc/pam.d/,该目录下的每个文件的名字对应服务名,例如ftp服务对应文件/etc/pam.d/ftp。

如果名为xxxx的服务所对应的配置文件/etc/pam.d/xxxx不存 在,则该服务将使用默认的配置文件/etc/pam.d/other。每个文件由如下格式的文本行所构成:

mole-typecontrol-flagmole-patharguments;每个字段的含义和/etc/pam.conf中的相同。

密码复杂度通过/etc/pam.d/system-auth这个文件来实现的。

I. 系统之家Linux如何通过PAM限制用户登录失败次数怎么办

现在很多地方都有限制用户登录的功能,Linux也是如此,当你登录失败多次后就可以限制用户登录,从而起到保护电脑安全的作用,通过PAM模块即可实现,下面随小编一起来了解下吧。
Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户。
编译PAM的配置文件#
vim
/etc/pam.d/login
#%PAM-1.0
auth
required
pam_tally2.so
deny=3
lock_time=300
even_deny_root
root_unlock_time=10
auth
[user_unknown=ignore
success=ok
ignoreignore=ignore
default=bad]
pam_securetty.so
auth
include
system-auth
account
required
pam_nologin.so
account
include
system-auth
password
include
system-auth
#
pam_selinux.so
close
should
be
the
first
session
rule
session
required
pam_selinux.so
close
session
optional
pam_keyinit.so
force
revoke
session
required
pam_loginuid.so
session
include
system-auth
session
optional
pam_console.so
#
pam_selinux.so
open
should
only
be
followed
by
sessions
to
be
executed
in
the
user
context
session
required
pam_selinux.so
open
各参数解释
even_deny_root
也限制root用户;
deny
设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time
设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time
设定root用户锁定后,多少时间后解锁,单位是秒;
此处使用的是
pam_tally2
模块,如果不支持
pam_tally2
可以使用
pam_tally
模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。
在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!

J. Linux里面pam是什么

Linux-PAM(linux可插入认证模块)是一套共享库,使本地系统管理员乎枯可以随意选择程序的认证方式。Linux-PAM有四种模块类型,分别代表四埋档种不同的任务,岁液洞它们是:认证管理(auth),账号管理(account),会话管理(session)和密码(password)管理。

热点内容
星瑞哪个配置性价比高 发布:2025-08-27 22:44:33 浏览:441
外国编程 发布:2025-08-27 22:20:27 浏览:359
六位手机号服务密码一般是多少 发布:2025-08-27 21:47:53 浏览:766
如何复位酷开路由器的密码 发布:2025-08-27 21:36:25 浏览:599
labsql访问数据库 发布:2025-08-27 21:13:43 浏览:106
a4纸板文件夹 发布:2025-08-27 20:47:15 浏览:611
我的世界发展迅速的服务器 发布:2025-08-27 20:33:07 浏览:586
怎样设置邮箱服务器ip 发布:2025-08-27 20:25:47 浏览:865
万彩动画大师怎么配置java路径 发布:2025-08-27 20:16:58 浏览:163
linux中的用户 发布:2025-08-27 20:11:36 浏览:456