文章目录

  • 一、linux密码设置及登陆控制
    • 1. Linux中pam模块
      • 1.1 PAM的模块类型
      • 1.2 控制介绍
    • 2. LINUX设置密码复杂度
    • 3. 用户不能使用su来进行切换用户
  • 二、参考

一、linux密码设置及登陆控制

密码设置及登陆控制文件位置:/etc/pam.d/system-auth

1. Linux中pam模块

Linux-PAM(linux可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式。换句话说,不用重新编译一个包含PAM功能的应用程序,就可以改变它使用的认证机制。这种方式下,就算升级本地认证机制,也不用修改程序. PAM使用配置/etc/pam.d/下的文件,来管理对程序的认证方式.应用程序 调用相应的配置文件,从而调用本地的认证模块.模块放置在/lib/security下,以加载动态库的形式进,像我们使用su命令时,系统会提示你输入root用户的密码.这就是su命令通过调用PAM模块实现的。

1.1 PAM的模块类型

Linux-PAM有四种模块类型,分别代表四种不同的任务,它们是:
认证管理(auth),
账号管理(account),
会话管理(session)
密码(password)管理,
一个类型可能有多行,它们按顺序依次由PAM模块调用.

vi /etc/pam.d/system-auth
如下图:

配置分为基本分为四列:模块名称、控制、模块库文件和参数。

其中模块主要分四种,具体功能如下:

  • auth模块: 用来对用户的身份进行识别.如:提示用户输入密码,或判断用户是否为root等.
  • auth模块: 对帐号的各项属性进行检查.如:是否允许登录,是否达到最大用户数,或是root用户是否允许在这个终端登录等.
  • session模块: 这个模块用来定义用户登录前的,及用户退出后所要进行的操作.如:登录连接信息,用户数据的打开与关闭,挂载文件系统等.
  • password模块: 使用用户信息来更新.如:修改用户密码.

总结: auth、account、password、session,auth是一个标识符,说明要干的事情,auth处理登录时验证方面的事,account、password、session和登录时验证没啥关系,比如password是处理更改密码时的事情。

常用PAM模块

1.2 控制介绍

控制用来标记处理和判断各个模块的返回值。控制分为六种:

required 表示即使某个模块对用户的验证失败,也要等所有的模块都执行完毕后,PAM 才返回错误信息。

requisite 和required相似,但是如果这个模块返回失败,则立刻向应用程序返回失败,表示此类型失败.不再进行同类型后面的操作.

sufficient 表示如果一个用户通过这个模块的验证,PAM结构就立刻返回验证成功信息,把控制权交回应用程序。其后相关模块的所有控制都将会比忽略。

optional 只有当它是与此服务+类型相关联的配置项是中的唯一模块时,模块返回才有意义。

include 引入改项指定文件中的所有配置项。

substack 和include类似。不同之处在于,对子堆中的完成和失败的行为的评估不会导致跳过整个模块堆栈的其余部分,而只会跳过子模块。

2. LINUX设置密码复杂度

CentOS操作系统密码复杂度策略设置
参考URL: https://yuweidong.blog.csdn.net/article/details/107831661
CentOS7密码复杂度配置
参考URL: https://blog.csdn.net/longfeizzu/article/details/101377584
linux设置密码复杂程度
参考URL: https://blog.csdn.net/weixin_43226231/article/details/105963093

在大多数 Linux 系统中,我们可以用 PAM(可插拔认证模块pluggable authentication module)来加强密码策略。

在下面的路径可以找到这个文件。

  • 在红帽系列的系统中,路径:/etc/pam.d/system-auth。
  • Debian 系列的系统中,路径:/etc/pam.d/common-password。

在CentOS 7上实现密码复杂度策略设置,主要是使用PAM pwquality模块完成

1、备份原有配置文件

cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak

2、设置复杂度策略

vim /etc/pam.d/system-auth

找到包含pam_pwquality.so模块的行,将原有行注释并修改为如下的新配置,密码长度最少12位,至少包含一个大写字母,一个小写字母,一个数字,一个特殊符号。

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
  • minlen=12 密码最小长度为8个字符。
  • lcredit=-1 密码应包含的小写字母的至少一个
  • ucredit=-1 密码应包含的大写字母至少一个
  • dcredit=-1 将密码包含的数字至少为一个
  • ocredit=-1 设置其他符号的最小数量,例如@,#、! $%等,至少要有一个
  • enforce_for_root 确保即使是root用户设置密码,也应强制执行复杂性策略。

3. 用户不能使用su来进行切换用户

查看日志secure, 日志存放的为/var/log/secure

二、参考

Linux 如何设置密码复杂度?
参考URL: https://linux.cn/article-11709-1.html

linux 密码设置及登陆控制/设置密码复杂度 (/etc/pam.d/system-auth)相关推荐

  1. linux上设置svn账户权限设置密码,Linux:如何在svn中设置“全局”用户/密码/组文件...

    好的,我找到了一种更好的方法来建立全局认证/访问.如果该信息可以帮助- 要删除或创建新用户,我使用了一个全局"passwd"文件(没有组!)/ home / svn / passw ...

  2. linux 密码设置问题

    当我们有时候要更改linux账户密码时,有时候会遇到下面这种情况: Password has been already used. Choose another. passwd: Have exhau ...

  3. win10开机有密码设置自动登陆

    1.win+R打开运行,输入netplwiz开启用户账户对话框. 2.在打开的用户账户对话框中,将[要使用本计算机,用户必须输入用户名和密码]的勾取消选择,并点击[应用]按钮 3.点击应用后在弹出的对 ...

  4. linux密码忘记grub登陆,Linux忘记密码后使用grub重置密码

    Linux忘记密码后使用grub重置密码 Jul 5, 2013 Technology Linux忘记密码后,可以通过修改Grub启动参数来进行修复, 举Ubuntu13.04为例: 出现Grub菜单 ...

  5. linux密码忘记grub登陆,CentOS7 忘记密码后通过修改grub进系统重置密码

    前言 有些时候会忘记服务器的root密码,这种时候可以通过vnc或外接屏幕的方式重置密码,操作步骤如下. 操作步骤 重启系统 在开机过程中,快速按下键盘上的方向键↑和↓.目的是告知引导程序,我们需要在 ...

  6. mysql8.0密码设置之后登陆不上的问题

    执行alter user 'root'@'localhost' identified with mysql_native_password by '密码'; 后,执行 select host, use ...

  7. 大华平台linux密码,大华DSS平台低权限账户越权直接修改system密码

    大华DSS平台低权限账户越权直接修改system密码 前提:拥有config配置用户名密码 被测试DSS版本信息:V3.11.003.R.20150929.374164 前提:拥有config配置用户 ...

  8. linux 正则 设置密码复杂度,Ubuntu修改密码及密码复杂度策略设置方法

    一.修改密码 1.修改普通用户密码 passwd 先输入当前密码确认,然后输入新的密码修改 2.修改root用户密码 sudo passwd root 默认root用户被禁止登录,如果需要解除限制,修 ...

  9. Linux主机密码设置,Linux如何批量创建用户和设置密码

    批量创建用户 用VIM创建一个文本,如testUsers.txt(名字随意),根据/etc/passwd里面的规格进行写.. user01::500:500:USER01:/home/user01:/ ...

最新文章

  1. 13.1-13.3 设置更改root密码,连接MySQL,MySQL常用命令
  2. 黑马程序员--IO【1】
  3. atoi函数_C语言字符串、数字转换函数大全!
  4. windows截图c语言,window 截取屏幕,并实现jpeg压缩
  5. 谷歌测试工程师分享前端性能监控利器Performance
  6. C语言 gcc 动态库
  7. SpringBoot使用@Asyn注解注意事项
  8. nginx 没有cookie_nginx实现负载均衡的原理及策略
  9. 基于Java实现的班级信息管理系统
  10. Hexo修改鼠标样式
  11. 基于https搭建habor私有库
  12. 在Nignx增加http2模块顺便聊聊HTTP的八卦
  13. 将自己的网站(html页面)做成链接分享给他人(建议使用vercel)
  14. HiFlow x 金数据,助力客户快速满足应用对接需求
  15. 【正点原子STM32连载】第二十章 基本定时器实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  16. ERP术语解释及SAP模块介绍
  17. expect语句--shell
  18. 专业临床护理体温单控件
  19. 代码REVIEW指南
  20. 深度剖析黑帽SEO手法

热门文章

  1. 只看不敲,神也学不好C---------嵌入式经典书籍经验分享
  2. activeperl安装失败
  3. 《LoadRunner 12七天速成宝典》—第1章 1.3节环境搭建之虚拟机配置
  4. linux系统源码安装dosbox,Linux-dosbox使用
  5. Linux:黑客传说(开源精神)(转)
  6. MATLAB实现物体颜色识别
  7. DFA算法实现的敏感词过滤器
  8. 浅尝辄止:数据库--数仓大数据平台--数据中台
  9. 一加5t升级 android p,第三方速度够快,一加1、一加5和一加5T火速升级AndroidP
  10. ETM黄皮书全球首发