Linux系统下的用户密码设定梳理

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
运维安全中心(堡垒机),企业双擎版 50资产 7天
简介:

随着linux使用的普遍,对于linux用户以及系统的安全要求越来越高,而用户密码复杂程度是系统安全性高低的首要体现。因此如何对linux下用户的密码进行规则限制,以保证用户必须使用复杂的密码,杜绝用户随意使用简单的密码,从而提高用户的安全性和系统的安全性。下面就不做过多赘述,直接以centos6版本为例进行介绍:

1)用户密码策略
Linux系统下的用户密码的有效期,是否可以修改密码可以通过login.defs文件控制.对login.defs文件修只影响后续建立的用户,如果要改变以前建立的用户的有效期等可以使用chage命令.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@bastion-IDC ~] # cat /etc/login.defs|grep -v "^#"|grep -v "^$"
MAIL_DIR     /var/spool/mail
PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7
UID_MIN           500
UID_MAX         60000
GID_MIN           500
GID_MAX         60000
CREATE_HOME  yes
UMASK           077
USERGROUPS_ENAB  yes
ENCRYPT_METHOD SHA512
 
上述文件中的重要参数表示:
PASS_MAX_DAYS   99999     密码的最大有效期, 99999:永久有期 
PASS_MIN_DAYS   0         是否可修改密码,0表示可修改,非0表示多少天后可修改
PASS_MIN_LEN    5         密码最小长度,但是使用pam_cracklib.so模块后,该参数不再有效(这个参考下面密码复杂度规则设定) 
PASS_WARN_AGE   7         密码失效前多少天在用户登录时通知用户修改密码

2)用户密码复杂度规则设定,需要通过/etc/pam.d/system-auth文件实施centos6中默认是通过pam_cracklib.so模块控制:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@bastion-IDC ~] # cat /etc/redhat-release
CentOS release 6.8 (Final)
   
[root@bastion-IDC ~] # vim /etc/pam.d/system-auth
将文件中的下面两行:
password    requisite     pam_cracklib.so try_first_pass retry=3  type =
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
改为:
password    requisite     pam_cracklib.so try_first_pass retry=3  type = minlen=8 ucredit=-2 lcredit=-4 dcredit=-1 ocredit=-1
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5
   
上面文件中参数分别说明设置密码的时候要遵循下面的规则:
retry=3       定义登录/修改密码失败时,可以重试的次数;
type =xxx      当添加/修改密码时,系统给出的缺省提示符是什么,用来修改缺省的密码提示文本。默认是不修改的,如上例。
minlen=8      定义用户密码的最小长度为8位
ucredit=-2    定义用户密码中最少有2个大写字母    (数字为负数,表示至少有多少个大写字母;数字为正数,表示至多有多少个大写字母;下面同理)
lcredit=-4    定义用户密码中最少有4个小写字母
dcredit=-1    定义用户密码中最少有1个数字
ocredit=-1    定义用户密码中最少有1个特殊字符(除数字、字母之外)
remember=5    修改用户密码时最近5次用过的旧密码就不能重用了
----------------------------------------------------------------------------
除了上面的几个参数,还可以设定下面的参数规则
difok=N       此选项用来规定新密码中必需有N个字符与旧密码不同。如果新密码中有1 /2 以上的字符与旧密码不同时,该新密码就会被接受。
difignore=N   此选项用来设定在difok之前收到多少个字符时,difok设置会被忽略,缺省为23。
minclass=N    此选项用来规定新密码中的字符类别的最小数目,字符一般有四种类别:数字、大写字母、小写字母,以及特殊字符。

3)Linux账户期限设定
Linux系统下可以使用chage命令是用来修改帐号和密码的有效期限。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
需求场景:
公司给客户开的 ftp 账户用于下载报社新闻稿件。这个是付费的,账户有时间限制。若是合同到期了,客户想续约,就需要给这个 ftp 账户做延期。
 
注意下面修改账户有效期限的命令:
# chage -l username   查看系统账户的当前设置
# chage -M 600 fzwb_word   修改fzwb_word账户密码的有效天数为600天。过了这个天数,账户密码无效
# chage -E "Jun 16, 2016" fzwb_word  设定fzwb_word账户的具体到期时间。过了这个日期,账户就无效。默认是never  (fzwb_word为ftp的账户账户)
 
注意:
chage -M  针对的是账户密码过期时间。
chage -E  这个命令针对的是账户过期时间
 
设定账户过期时间,除了使用chage -E命令,还可以使用 usermod  -e命令
# usermod -e "Jun 16, 2016" fzwb_word   设定fzwb_word账户的具体到期时间。默认是never  (fzwb_word为ftp的账户账户)
 
下面命令查看, fzwb_word 这个账户的时间到 2015 年 6 月 10 号就到期了!!
修改为 2016 月 6 月 16 号到期!
[root@hlweb80 ~] # chage -l fzwb_word
Minimum: 0
Maximum: 99999
Warning: 7
Inactive: -1
Last Change: Jun 15, 2012
Password Expires: Never
Password Inactive: Never
Account Expires: Jun 10, 2015
 
[root@hlweb80 ~] # usermod -e "Jun 16, 2016" fzwb_word
[root@hlweb80 ~] # chage -l fzwb_word
Minimum: 0
Maximum: 99999
Warning: 7
Inactive: -1
Last Change: Jun 15, 2012
Password Expires: Never
Password Inactive: Never
Account Expires: Jun 16, 2016
 
--------------------------------------------------------------------------------
可以使用chage命令来手动修改账户的相关属性:
格式:chage [选项] 账户名
 
[选项]
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:账户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权账户来确定他们的密码或帐号何时过期。
 
实例如下:
[root@linux-node1 ~] # chage -l wangshibo
Last password change          : Mar 09, 2017        // 账户创建时间
Password expires          : Aug 30, 2022            // 账户密码过期时间
Password inactive         : never
Account expires           : never                  // 账户过期时间
Minimum number of days between password change    : 0
Maximum number of days between password change    : 2000
Number of days of warning before password expires : 7
 
[root@linux-node1 ~] # usermod -e "Jun 16, 2018" wangshibo
 
[root@linux-node1 ~] # chage -l wangshibo
Last password change          : Mar 09, 2017
Password expires          : Aug 30, 2022
Password inactive         : never
Account expires           : Jun 16, 2018                      
Minimum number of days between password change    : 0
Maximum number of days between password change    : 2000
Number of days of warning before password expires : 7
 
[root@linux-node1 ~] # chage -M 20 wangshibo
 
[root@linux-node1 ~] # chage -l wangshibo
Last password change          : Mar 09, 2017
Password expires          : Mar 29, 2017        
Password inactive         : never
Account expires           : Jun 16, 2018
Minimum number of days between password change    : 0
Maximum number of days between password change    : 20
Number of days of warning before password expires : 7
 
[root@linux-node1 ~] # chage -E "Jun 2, 2020" wangshibo
 
[root@linux-node1 ~] # chage -l wangshibo
Last password change          : Mar 09, 2017
Password expires          : Mar 29, 2017
Password inactive         : never
Account expires           : Jun 02, 2020
Minimum number of days between password change    : 0
Maximum number of days between password change    : 20
Number of days of warning before password expires : 7
***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************


本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/5752632.html,如需转载请自行联系原作者
目录
打赏
0
0
0
0
51
分享
相关文章
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
90 24
|
7天前
|
Linux系统下快速批量创建和删除文件的方法
总的来说,使用shell脚本来批量处理文件是一种非常强大的工具,只要你愿意花时间学习和实践,你会发现它能大大提高你的工作效率。
58 19
Linux系统之su命令的基本使用
Linux系统之su命令的基本使用
67 2
Linux系统之su命令的基本使用
在Ubuntu Linux系统下如何搭建并安装EDK2
以上就是在Ubuntu Linux系统下搭建并安装EDK2的过程。这个过程可能会有些复杂,但只要按照步骤一步步来,应该不会有太大问题。如果在过程中遇到任何问题,都可以在网上找到相应的解决方案。希望这个指南能对你有所帮助!
67 17
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
120 27
|
1月前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
152 10
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
132 24
Linux系统之whereis命令的基本使用
|
1月前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
179 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
1月前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
90 0
下一篇
oss创建bucket
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等