作者:【吴业亮】云计算开发工程师
博客:http://blog.csdn.net/wylfengyujiancheng
一、设置密码规则
1、密码长度、有效期
/etc/login.defs文件是当创建用户时的一些规划,比如创建用户时,是否需要家目录,UID和GID的范围;用户的期限等等,这个文件是可以通过root来定义的
PASS_MAX_DAYS 90 —-两次改变密码之间相距的最大天数,密码有效最大天数
PASS_MIN_DAYS 6 —-两次改变密码之间相距的最小天数,为零时代表任何时候都可以更改密码
PASS_MIN_LEN 6 —-密码最小长度
PASS_WARN_AGE 30 —-在密码过期之前警告的天数
注意:以上只对之后新增的用户有效,如果要修改已存在的用户密码规则,需要使用chage命令
2、查看用户的密码规则
chage -l test
最近一次密码修改时间 : 6月 08, 2017
密码过期时间 : 9月 06, 2017
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :6
两次改变密码之间相距的最大天数 :90
在密码过期之前警告的天数 :30
3、修改方法:
# chage -M 90 -m 6 -W 30 test
注意:不要用该命令给root用户加上有效期,如果密码过期,再加上后文说的/etc/shadow文件加锁禁止修改,会导致root提示修改密码,无法成功修改密码,从而无法登陆。
如果要修改密码过期时间为“从不”
# chage -M 99999 test
4、设置密码最大使用时间
[root@server ~]# vi /etc/login.defs
PASS_MAX_DAYS 60
5、两次改变密码之间相距的最小天数
[root@server ~]# vi /etc/login.defs
PASS_MIN_DAYS 2
6、在密码过期之前警告的天数
[root@server ~]# vi /etc/login.defs
PASS_WARN_AGE 7
7、五次更改密码不能有重复,并且每次修改密码都会将历史密码记录在/etc/security/opasswd文件中
[root@server ~]# vi /etc/pam.d/system-auth
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
8、设置最小的密码长度为8
[root@server ~]# authconfig --passminlen=8 --update
查看配置结果
[root@server ~]# grep "^minlen" /etc/security/pwquality.conf
minlen = 8
9、设置密码必须满足同时有两种特殊字符(大写、小写、数字、特殊字符)
[root@server ~]# authconfig --passminclass=2 --update
查看配置结果
[root@server ~]# grep "^minclass" /etc/security/pwquality.conf
minclass = 2
10、设置密码中只允许两个连续的字符相同
[root@server ~]# authconfig --passmaxrepeat=2 --update
查看配置结果
[root@server ~]# grep "^maxrepeat" /etc/security/pwquality.conf
maxrepeat = 2
11、在新密码中设置同一类的允许连续字符的最大数目
[root@server ~]# authconfig --passmaxclassrepeat=4 --update
查看配置结果
[root@server ~]# grep "^maxclassrepeat" /etc/security/pwquality.conf
maxclassrepeat = 4
12、在新密码中至少需要一个小写字符。
[root@server ~]# authconfig --enablereqlower --update
查看配置结果
[root@server ~]# grep "^lcredit" /etc/security/pwquality.conf
lcredit = -1
13、在新密码中至少需要一个大写字符
[root@server ~]# authconfig --enablerequpper --update
查看配置结果
[root@server ~]# grep "^ucredit" /etc/security/pwquality.conf
ucredit = -1
14、在新密码中至少需要一个数字
[root@server ~]# authconfig --enablereqdigit --update
查看配置结果
[root@server ~]# grep "^dcredit" /etc/security/pwquality.conf
dcredit = -1
15、密码包括至少一个特殊字符
查看配置结果
[root@server ~]# grep "^ocredit" /etc/security/pwquality.conf
ocredit = -1
16、在新密码中设置单调字符序列的最大长度
[root@server ~]# vi /etc/security/pwquality.conf
#文件末尾新增
maxsequence = 3
17、设置新密码中不能出现在旧密码中的字符数
[root@server ~]# vi /etc/security/pwquality.conf
#文件末尾新增
difok = 5
18、检查来自用户passwd条目的GECOS字段的长度超过3个字符的字是否包含在新密码中。
[root@server ~]# vi /etc/security/pwquality.conf
#文件末尾新增
gecoscheck = 1
19、设置不能包含在密码中的Ssace分隔的单词列表
[root@server ~]# vi /etc/security/pwquality.conf
#文件末尾新增
badwords = denywords1 denywords2 denywords3
20、为新密码设置hash / crypt算法。 (默认为sha512)
[root@server ~]# authconfig --test | grep hashing
password hashing algorithm is md5
#修改为sha512
[root@server ~]# authconfig --passalgo=sha512 --update
[root@server ~]# authconfig --test | grep hashing
password hashing algorithm is sha512
二、账户锁定策略实现
策略要求如下:
设定锁定的阈值为5次
锁定时间为5分钟即300秒
必须所有用户都受限,包括root
1、修改配置文件/etc/pam.d/system-auth-ac,写入策略
root@server ~]# vi /etc/pam.d/system-auth-ac
auth required pam_env.so
auth required pam_tally2.so even_deny_root deny=5 unlock_time=60
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
account required pam_unix.so
account required pam_tally2.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account required pam_permit.so
2、修改配置文件/etc/pam.d/password-auth-ac
[root@server ~]# vi /etc/pam.d/password-auth-ac
auth required pam_env.so
auth required pam_tally2.so deny=5 unlock_time=60
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
account required pam_unix.so
account required pam_tally2.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account required pam_permit.so
3、查看用户锁定状态
[root@ server pam.d]# pam_tally2 -u wyl
Login Failures Latest failure From
wyl 7 12/20/16 14:02:55 192.168.10.86
4、解锁状态
[root@ server ~]# pam_tally2 -r -u wyl
Login Failures Latest failure From
wyl 0
参考:
https://www.server-world.info/en/note?os=CentOS_7&p=password
文章浏览阅读418次,点赞4次,收藏2次。使用古月居的“robot_marm”包直接编译出错在ubuntu18,自己建的工作空间里面,将“ros_exploring-master”整个功能包拉进去工作空间编译发生报错,因为只需要用到“robot_marm”这个包(跟着书上做机械臂仿真),但是只用这个包也报错,就找了下解决方法。其中是因为少了两个数据结构的包,git clone到工作空间的src文件夹下就好了。git clone https://github.com/ros-interactive-manipulation/manipulati_github guyueju
文章浏览阅读2.5k次。文章目录1、静态包含和动态包含的区别2、jsp有哪些内置对象?作用分别是什么?1、静态包含和动态包含的区别语法:静态包含:include指令是静态包含,静态包含的意思就是:把文件的代码内容都包含进来,再编译!<%@ include file=""%>动态包含:include行为是动态包含。其实include行为就是封装了request.getRequestDispatcher(String url).include(request,response) <jsp: include _jsp面试
文章浏览阅读192次。// 使用google vr 添加的compile ‘com.google.vr:sdk-base:1.40.0’compile ‘com.google.vr:sdk-audio:1.40.0’compile ‘com.google.vr:sdk-videowidget:1.40.0’添加这些依赖包之后google给我们的生成了哪些library库呢?![](https://img-blog.csdn.net/20170427162756208?watermark/2/text/aHR0cDovL_自己的android app中集成vr浏览器
文章浏览阅读1.8k次。DB :DB是一个纯计数单位:dB = 10logX。dB的意义其实再简单不过了,就是把一个很大(后面跟一长串0的)或者很小(前面有一长串0的)的数比较简短地表示出来。如:X = 1000000000000000(多少个了?)= 10logX = 150 dB X = 0.000000000000001 = 10logX = -150 dB DB在缺省情况下总是定义功率单位,以 1_it dbm
文章浏览阅读1w次,点赞7次,收藏78次。芯片验证从零开始系列(一)——芯片验证概论芯片开发流程动态验证技术静态验证技术Emulation和FPGA原型开发由于最近一个比赛要用到UVM验证,顺便多一门以后求职的手艺,准备系统地学习一下SV和UVM,也可以为之后的毕业论文和发展方向做一些准备。芯片开发流程1)市场人员和客户沟通确定用户需求2)系统设计人员按照功能划分为各个子系统3)子系统由设计团队开发实现4)验证人员对设计功能展开验证,发现设计缺陷,交由设计人员修正5)验证没有出现漏洞后,交由后端人员进行综合,布局布线6)后端人员将_芯片验证
文章浏览阅读8.9k次,点赞24次,收藏26次。RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要对RabbitMQ有所了解,本系列是RabbitMQ快速入门文章,主要内容包括RabbitMQ是什么、RabbitMQ核心概念、五种消息模型、用Docker安装RabbitMQ等。_obpmq
文章浏览阅读358次。FineBI和Tableau是比较好的自助式商业智能软件,功能都很强大,是企业数据可视化不可或缺的利器,但两款产品还是有非常大的区别的,例如Tableau的功能全面且深入,更适合专业的数据分析人员,而FineBI则是面向普通的业务人员,数据分析过程更人性化,更简单和易用,并为企业提供了全面的数据管理和用户管理策略。下面对这两款商业智能软件做个对比评测。一、产品理念FineBI是帆软公司推出的自助..._centos7安装finebi
文章浏览阅读190次。2020 JQuery Ajax Maven Spring MyBatis [A]JQuery + JQueryAjaxJQuery + JQueryAjax 1: JQueryJQuery + JQueryAjax 2: JQueryAjaxMavenSpringMVC MyBatisSpringMVC MyBatis 1: SpringMVCSpringMVC MyBatis 2: MyBatisSpringMVC MyBatis 3: MavenSpringMVC MyBatis 4: Spring_ajaxmaven
文章浏览阅读1.9w次,点赞60次,收藏310次。通信原理和MATLAB_psk解调
文章浏览阅读1.9k次。Descriptor-based Matchinguncalibrated mathcing return perspective map,calibrated matching return pose.find_calib_descriptor_model()Deformable MatchingFind objects with perspective distort..._halcon 3d定位
文章浏览阅读706次。Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。在本文中,详细介绍了如何部署 Hadoop 分布式运行环境,如何让程序分布式运行于多台普通的计算机上,如何使用 IBM MapReduce Tools 轻松地将 MapReduce 程序部署到 Hadoop 分_hdfs dfs -copyfromlocal /home/hadoop/temp/* /tempdir
文章浏览阅读309次。1.关闭防火墙systemctlstopfirewalld(暂时关闭,重启后恢复)修改前------将index.html改为hello.html。2.设置宽容模式setenforce0(暂时性设置)配置同一ip不同端口的虚拟主机访问apache服务器。(1)安装httpd(先挂载,用yum安装)(4)修改配置文件httpd.html。(3)创建文件hello.html。(2)启动httpd服务。(5)重启httpd服务。(5)重启httpd服务。(5)重启httpd服务。..._虚拟机安装开启httpd服务