Linux系統(tǒng)設置復雜密碼策略方法
用戶帳號管理是系統(tǒng)管理員最重要的工作之一。而密碼安全是系統(tǒng)安全中最受關注的一塊。本文將為大家介紹如何在 Linux 上設置系統(tǒng)用戶密碼復雜度策略。

假設你已經在你的 Linux 系統(tǒng)上使用了 PAM (Pluggable Authentication Modules,插入式驗證模塊),因為這些年所有的 Linux 發(fā)行版都在使用它。
一、準備工作
安裝 PAM 的 cracklib 模塊,cracklib 能提供額外的密碼檢查能力。
Debian、Ubuntu 或 Linux Mint 系統(tǒng)上:
$ sudo apt-get install libpam-cracklib
CentOS、Fedora、RHEL 系統(tǒng)已經默認安裝了 cracklib PAM 模塊,所以在這些系統(tǒng)上無需執(zhí)行上面的操作。
為了強制實施密碼策略,我們需要修改 /etc/pam.d 目錄下的 PAM 配置文件。一旦修改,策略會馬上生效。
注意:此教程中的密碼策略只對非 root 用戶有效,對 root 用戶無效。
二、禁止使用舊密碼
找到同時有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用過的5個密碼(己使用過的密碼會被保存在 /etc/security/opasswd 下面)。
Debian、Ubuntu 或 Linux Mint 系統(tǒng)上:
$ sudo vi /etc/pam.d/common-password
password [success=1 default=ignore] pam_unix.so obscure sha512 remember=5
CentOS、Fedora、RHEL 系統(tǒng)上:
$ sudo vi /etc/pam.d/system-auth
password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5
三、設置最短密碼長度
找到同時有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密碼長度為(10 - 類型數(shù)量)。這里的 “類型數(shù)量” 表示不同的字符類型數(shù)量。PAM 提供4種類型符號作為密碼(大寫字母、小寫字母、數(shù)字和標點符號)。如果你的密碼同時用上了這4種類型的符號,并且你的 minlen 設為10,那么最短的密碼長度允許是6個字符。
Debian、Ubuntu 或 Linux Mint 系統(tǒng)上:
$ sudo vi /etc/pam.d/common-password
password requisite pam_cracklib.so retry=3 minlen=10 difok=3
CentOS、Fedora、RHEL 系統(tǒng)上:
$ sudo vi /etc/pam.d/system-auth
password requisite pam_cracklib.so retry=3 difok=3 minlen=10
四、設置密碼復雜度
找到同時有 “password” 和 “pam_cracklib.so” 字段并且附加有 “ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1” 的那行,它表示密碼必須至少包含一個大寫字母(ucredit),兩個小寫字母(lcredit),一個數(shù)字(dcredit)和一個標點符號(ocredit)。
Debian、Ubuntu 或 Linux Mint 系統(tǒng)上:
$ sudo vi /etc/pam.d/common-password
password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
CentOS、Fedora、RHEL 系統(tǒng)上:
$ sudo vi /etc/pam.d/system-auth
password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
五、設置密碼過期期限
編輯 /etc/login.defs 文件,可以設置當前密碼的有效期限,具體變量如下所示:
$ sudo vi /etc/login.defs
PASSMAXDAYS 150 PASSMINDAYS 0 PASSWARNAGE 7
這些設置要求用戶每6個月改變他們的密碼,并且會提前7天提醒用戶密碼快到期了。
如果你想為每個用戶設置不同的密碼期限,使用 chage 命令。下面的命令可以查看某個用戶的密碼限期:
$ sudo chage -l xmodulo
Last password change : Dec 30, 2013 Password expires :
never Password inactive : never Account expires :
never Minimum number of days between password change :
0 Maximum number of days between password change :
99999 Number of days of warning before password expires : 7
默認情況下,用戶的密碼永不過期。
下面的命令用于修改 xmodulo 用戶的密碼期限:
$ sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo
上面的命令將密碼期限設為2014年6月3日。另外,修改密碼的最短周期為5天,最長周期為90天。密碼過期前14天會發(fā)送消息提醒用戶,過期后帳號會被鎖住30天。
設置完后,驗證效果如下:

相關文章

集成系統(tǒng)級Claw模式! Deepin 官宣發(fā)布 25.1 版本
deepin操作系統(tǒng)發(fā)布了最新的 25.1 版本更新,該版本基于 deepin 25 正式版積累的多輪內測成果,在 AI 能力、內核版本、桌面環(huán)境、文件管理器以及系統(tǒng)安全等方面進行了更新2026-04-13
又一代老硬件退場! Linux 內核正式放棄Intel 486 CPU
在過去的幾十年間,CPU 的架構已經經歷了飛速發(fā)展,x86 系列就是其中之一,而 i486 則屬于該系列中的一個,當前,i486 的CPU處理器已經夠老,從 Linux 7.1 開始將不再有對2026-04-09
我把 Linux 中最常用、最實用、最常被問到的命令按照實際使用場景分類整理,方便你快速查閱和記憶,內容覆蓋日常運維、開發(fā)調試、性能分析、文件處理、網絡、安全、系統(tǒng)管2026-04-08
一分鐘內檢查Linux服務器性能? 9個性能檢測常用的基本命令
今天我們來看看Linux系統(tǒng)中用于性能監(jiān)控的一系列命令,這些命令可以快速查看機器的負載情況,詳細請看下文介紹2026-03-18
從零基礎到精通! 適合高級用戶的15款Linux發(fā)行版推薦
Linux作為操作系統(tǒng)領域靈活性和可定制性的基石,提供了大量滿足不同用戶需求的發(fā)行版,今天分享適合高級用戶的15款Linux發(fā)行版2026-03-10
開箱即用? 這4個高手級Linux發(fā)行版遠沒你想象的那么安全易用
如果你正在糾結用哪個發(fā)行版?零基礎新手別被“高端”“極客”“聲明式”這些詞沖昏頭腦,先用好用的,再慢慢進階2026-03-10
這幾款SSH工具真的夠用了! Linux好用的ssh工具推薦
在Linux上使用SSH,您需要安裝一個SSH客戶端,今天整理找到的8 款 SSH / 終端工具,從免費開源到企業(yè)級商用,從輕量化命令行到一站式工具箱,每款都做了介紹與對比,希望能2026-03-09
在Linux系統(tǒng)下有兩種用戶,即高級用戶root,普通用戶,高級用戶root可以在系統(tǒng)中做任何事情,普通用戶僅可在Linux系統(tǒng)中做有限的事情,下面我們就來看看切換方法2026-02-28
揭秘當前登錄用戶的身份! Linux中使用logname命令的技巧
logname命令就是這樣一個簡單但強大的工具,它能幫助我們輕松獲取當前登錄用戶的用戶名,今天,我們就來深入探索一下這個命令的工作原理、使用方法和最佳實踐2026-02-26
在 Linux 系統(tǒng)中,DNS 緩存是一種將域名和 IP 地址映射關系緩存在本地的機制,可以加快域名解析速度,并減輕 DNS 服務器的負載2026-02-26



