随着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,如需轉載請自行聯系原作者