天天看点

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

随着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

<code>[root@bastion-IDC ~]</code><code># cat /etc/login.defs|grep -v "^#"|grep -v "^$"</code>

<code>MAIL_DIR    </code><code>/var/spool/mail</code>

<code>PASS_MAX_DAYS   99999</code>

<code>PASS_MIN_DAYS   0</code>

<code>PASS_MIN_LEN    5</code>

<code>PASS_WARN_AGE   7</code>

<code>UID_MIN           500</code>

<code>UID_MAX         60000</code>

<code>GID_MIN           500</code>

<code>GID_MAX         60000</code>

<code>CREATE_HOME </code><code>yes</code>

<code>UMASK           077</code>

<code>USERGROUPS_ENAB </code><code>yes</code>

<code>ENCRYPT_METHOD SHA512</code>

<code>上述文件中的重要参数表示:</code>

<code>PASS_MAX_DAYS   99999     密码的最大有效期, 99999:永久有期 </code>

<code>PASS_MIN_DAYS   0         是否可修改密码,0表示可修改,非0表示多少天后可修改</code>

<code>PASS_MIN_LEN    5         密码最小长度,但是使用pam_cracklib.so模块后,该参数不再有效(这个参考下面密码复杂度规则设定) </code>

<code>PASS_WARN_AGE   7         密码失效前多少天在用户登录时通知用户修改密码</code>

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

21

22

23

24

25

<code>[root@bastion-IDC ~]</code><code># cat /etc/redhat-release</code>

<code>CentOS release 6.8 (Final)</code>

<code>  </code> 

<code>[root@bastion-IDC ~]</code><code># vim /etc/pam.d/system-auth</code>

<code>将文件中的下面两行:</code>

<code>password    requisite     pam_cracklib.so try_first_pass retry=3 </code><code>type</code><code>=</code>

<code>password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok</code>

<code>改为:</code>

<code>password    requisite     pam_cracklib.so try_first_pass retry=3 </code><code>type</code><code>= minlen=8 ucredit=-2 lcredit=-4 dcredit=-1 ocredit=-1</code>

<code>password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5</code>

<code>上面文件中参数分别说明设置密码的时候要遵循下面的规则:</code>

<code>retry=3       定义登录/修改密码失败时,可以重试的次数;</code>

<code>type</code><code>=xxx      当添加/修改密码时,系统给出的缺省提示符是什么,用来修改缺省的密码提示文本。默认是不修改的,如上例。</code>

<code>minlen=8      定义用户密码的最小长度为8位</code>

<code>ucredit=-2    定义用户密码中最少有2个大写字母    (数字为负数,表示至少有多少个大写字母;数字为正数,表示至多有多少个大写字母;下面同理)</code>

<code>lcredit=-4    定义用户密码中最少有4个小写字母</code>

<code>dcredit=-1    定义用户密码中最少有1个数字</code>

<code>ocredit=-1    定义用户密码中最少有1个特殊字符(除数字、字母之外)</code>

<code>remember=5    修改用户密码时最近5次用过的旧密码就不能重用了</code>

<code>----------------------------------------------------------------------------</code>

<code>除了上面的几个参数,还可以设定下面的参数规则</code>

<code>difok=N       此选项用来规定新密码中必需有N个字符与旧密码不同。如果新密码中有1</code><code>/2</code><code>以上的字符与旧密码不同时,该新密码就会被接受。</code>

<code>difignore=N   此选项用来设定在difok之前收到多少个字符时,difok设置会被忽略,缺省为23。</code>

<code>minclass=N    此选项用来规定新密码中的字符类别的最小数目,字符一般有四种类别:数字、大写字母、小写字母,以及特殊字符。</code>

3)Linux账户期限设定

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

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

<code>需求场景:</code>

<code>公司给客户开的</code><code>ftp</code><code>账户用于下载报社新闻稿件。这个是付费的,账户有时间限制。若是合同到期了,客户想续约,就需要给这个</code><code>ftp</code><code>账户做延期。</code>

<code>注意下面修改账户有效期限的命令:</code>

<code># chage -l username   查看系统账户的当前设置</code>

<code># chage -M 600 fzwb_word   修改fzwb_word账户密码的有效天数为600天。过了这个天数,账户密码无效</code>

<code># chage -E "Jun 16, 2016" fzwb_word  设定fzwb_word账户的具体到期时间。过了这个日期,账户就无效。默认是never  (fzwb_word为ftp的账户账户)</code>

<code>注意:</code>

<code>chage -M  针对的是账户密码过期时间。</code>

<code>chage -E  这个命令针对的是账户过期时间</code>

<code>设定账户过期时间,除了使用chage -E命令,还可以使用</code><code>usermod</code> <code>-e命令</code>

<code># usermod -e "Jun 16, 2016" fzwb_word   设定fzwb_word账户的具体到期时间。默认是never  (fzwb_word为ftp的账户账户)</code>

<code>下面命令查看, fzwb_word 这个账户的时间到 2015 年 6 月 10 号就到期了!!</code>

<code>修改为 2016 月 6 月 16 号到期!</code>

<code>[root@hlweb80 ~]</code><code># chage -l fzwb_word</code>

<code>Minimum: 0</code>

<code>Maximum: 99999</code>

<code>Warning: 7</code>

<code>Inactive: -1</code>

<code>Last Change: Jun 15, 2012</code>

<code>Password Expires: Never</code>

<code>Password Inactive: Never</code>

<code>Account Expires: Jun 10, 2015</code>

<code>[root@hlweb80 ~]</code><code># usermod -e "Jun 16, 2016" fzwb_word</code>

<code>Account Expires: Jun 16, 2016</code>

<code>--------------------------------------------------------------------------------</code>

<code>可以使用chage命令来手动修改账户的相关属性:</code>

<code>格式:chage [选项] 账户名</code>

<code>[选项]</code>

<code>-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。</code>

<code>-M:密码保持有效的最大天数。</code>

<code>-w:账户密码到期前,提前收到警告信息的天数。</code>

<code>-E:帐号到期的日期。过了这天,此帐号将不可用。</code>

<code>-d:上一次更改的日期。</code>

<code>-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。</code>

<code>-l:例出当前的设置。由非特权账户来确定他们的密码或帐号何时过期。</code>

<code>实例如下:</code>

<code>[root@linux-node1 ~]</code><code># chage -l wangshibo</code>

<code>Last password change          : Mar 09, 2017       </code><code>//</code><code>账户创建时间</code>

<code>Password expires          : Aug 30, 2022           </code><code>//</code><code>账户密码过期时间</code>

<code>Password inactive         : never</code>

<code>Account expires           : never                 </code><code>//</code><code>账户过期时间</code>

<code>Minimum number of days between password change    : 0</code>

<code>Maximum number of days between password change    : 2000</code>

<code>Number of days of warning before password expires : 7</code>

<code>[root@linux-node1 ~]</code><code># usermod -e "Jun 16, 2018" wangshibo</code>

<code>Last password change          : Mar 09, 2017</code>

<code>Password expires          : Aug 30, 2022</code>

<code>Account expires           : Jun 16, 2018                      </code>

<code>[root@linux-node1 ~]</code><code># chage -M 20 wangshibo</code>

<code>Password expires          : Mar 29, 2017        </code>

<code>Account expires           : Jun 16, 2018</code>

<code>Maximum number of days between password change    : 20</code>

<code>[root@linux-node1 ~]</code><code># chage -E "Jun 2, 2020" wangshibo</code>

<code>Password expires          : Mar 29, 2017</code>

<code>Account expires           : Jun 02, 2020</code>

***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************

本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/5752632.html,如需转载请自行联系原作者

继续阅读