口令時效是一種系統機制,用於強制口令在特定的時間長度後失效。對用戶來說,這可能帶來了一些麻煩,但是它確保了口令會定期進行更改,是一項很好的 安全 措施。默認情況下,絕大多數的Linux分裝版本並沒有打開口令時效,不過要想打開卻非常簡單。
通過編輯/etc/login.defs,你可以指定幾個參數,來設置口令實效的默認設定:
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
當設置口令時效的天數為99999時,實際上相當於關閉了口令時效。一個更明智的設定一般是60天——每2個月強制更改一次密碼。
PASS_MIN_DAYS參數則設定了在本次密碼修改後,下次允許更改密碼之前所需的最少天數。PASS_WARN_AGE的設定則指明了在口令失效前多少天開始通知用戶更改密碼(一般在用戶剛剛登陸系統時就會收到警告通知)。
你也會編輯/etc/default/useradd文件,尋找INACTIVE和EXPIRE兩個關鍵詞:
INACTIVE=14
EXPIRE=
這會指明在口令失效後多久時間內,如果口令沒有進行更改,則將賬戶更改為失效狀態。在本例中,這個時間是14天。而EXPIRE的設置則用於為所有新用戶設定一個密碼失效的明確時間(具體格式為“年份-月份-日期”)。
顯然,上述這些設定更改之後,只能影響到新建立的用戶。要想修改目前已存在的用戶具體設置,需要使用chage工具。
# chage -M 60 joe
這條命令將設置用戶joe的PASS_MAX_DAYS為60,並修改對應的shadow文件。
你可以使用chage -l的選項,列出當前的賬戶時效情況,而使用-m選項是設置PASS_MIN_DAYS, 用-W則是設置PASS_WARN_AGE,等等。chage工具可以讓你修改特定賬戶的所有密碼時效狀態。
注意,chage僅僅適用於本地系統的賬戶,如果你在使用一個類似LDAP這樣的認證系統時,該工具會失效。如果你在使用LDAP作為認證,而你又打算使用chage,那麼,哪怕僅僅是試圖列出用戶密碼的時效信息,你也會發現chage根本不起作用。
制定一項策略,定義多長時間一個密碼必須進行更改,然後強制執行該策略,是非常不錯的一個做法。在解雇了某個雇員後,口令時效策略會保證該雇員不可能在被解雇3個月後發現他的口令依然可用。即使系統管理員忽略了刪除他的帳號,該帳號也會因密碼時效策略而被自動鎖定。當然,這一點並不能成為不及時刪除該雇員帳號的理由,但是這個策略的確提供了一層額外的 安全 防護,尤其是在過去常常忽視及時清理帳號的情況下。