Linux設(shè)置賬號(hào)密碼永不過期的方法匯總
在 Linux 系統(tǒng)中,設(shè)置用戶賬號(hào)密碼永不過期可以通過多種方式實(shí)現(xiàn)。以下是詳細(xì)的操作指南:
方法一:使用chage命令(推薦)
1. 設(shè)置密碼永不過期
# 設(shè)置用戶密碼永不過期 sudo chage -M 99999 username # 同時(shí)設(shè)置賬戶永不過期 sudo chage -E -1 username
2. 驗(yàn)證設(shè)置結(jié)果
# 查看用戶密碼策略 sudo chage -l username # 輸出示例: Last password change : Jan 01, 2023 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
方法二:直接修改/etc/shadow文件
1. 備份原始文件
# 備份shadow文件 sudo cp /etc/shadow /etc/shadow.backup
2. 編輯shadow文件
# 使用vipw命令安全編輯(推薦) sudo vipw -s # 或者使用文本編輯器 sudo vi /etc/shadow
3. 修改密碼過期字段
找到對(duì)應(yīng)用戶行,將第5個(gè)字段(密碼最大天數(shù))改為 99999:
# 修改前: username:$6$xyz...:18687:0:90:7:30:: # 修改后: username:$6$xyz...:18687:0:99999:7:30::
Shadow文件字段說明:
- 用戶名
- 加密密碼
- 最后修改密碼的天數(shù)(從1970-1-1開始)
- 最小密碼年齡(0表示可立即修改)
- 最大密碼年齡(99999表示永不過期)
- 密碼過期前的警告天數(shù)
- 密碼過期后的寬限天數(shù)
- 賬戶過期日期
- 保留字段
方法三:使用usermod命令
# 設(shè)置密碼永不過期 sudo usermod -e "" username # 或者設(shè)置過期日期為永不過期 sudo usermod -e -1 username
方法四:全局密碼策略配置
1. 修改/etc/login.defs文件
sudo vi /etc/login.defs
修改以下參數(shù):
# 密碼最大天數(shù)(永不過期) PASS_MAX_DAYS 99999 # 密碼最小天數(shù) PASS_MIN_DAYS 0 # 密碼最小長度 PASS_MIN_LEN 8 # 密碼過期前警告天數(shù) PASS_WARN_AGE 7
注意:此配置僅對(duì)新創(chuàng)建的用戶有效,已有用戶需要單獨(dú)設(shè)置。
2. 批量修改現(xiàn)有用戶
# 修改所有現(xiàn)有用戶的密碼策略
for user in $(getent passwd | cut -d: -f1); do
sudo chage -M 99999 $user
done
# 或者只修改有登錄shell的用戶
for user in $(getent passwd | grep -v "/nologin\|/false" | cut -d: -f1); do
sudo chage -M 99999 $user
done
方法五:使用圖形化工具(如可用)
# 使用GNOME用戶管理工具 sudo gnome-users-admin # 使用KDE用戶管理工具 sudo kuser
驗(yàn)證和監(jiān)控
1. 檢查密碼策略
# 檢查所有用戶密碼過期設(shè)置
sudo awk -F: '{print $1 ":" $5}' /etc/shadow
# 檢查即將過期的密碼
sudo chage -l $(getent passwd | cut -d: -f1) | grep -E "Password expires|Account expires" | grep -v "never"
2. 創(chuàng)建監(jiān)控腳本
#!/bin/bash
# check_password_expiry.sh
TODAY=$(date +%s)
WARN_DAYS=30
while IFS=: read -r user _ _ _ max _ _ _; do
if [[ "$max" -ne 99999 && "$max" -ne -1 ]]; then
expire_date=$(($(date -d "1970-01-01 + $max days" +%s)))
days_left=$(( (expire_date - TODAY) / 86400 ))
if [[ "$days_left" -le "$WARN_DAYS" ]]; then
echo "警告: 用戶 $user 的密碼將在 $days_left 天后過期"
fi
fi
done < <(sudo awk -F: '{print $1 ":" $5}' /etc/shadow)
恢復(fù)密碼過期策略
如果需要恢復(fù)密碼過期策略:
# 恢復(fù)默認(rèn)密碼過期策略(90天) sudo chage -M 90 username # 設(shè)置特定過期日期 sudo chage -E "2024-12-31" username
安全注意事項(xiàng)
風(fēng)險(xiǎn)評(píng)估:
- 永不過期密碼降低了安全性
- 適用于服務(wù)賬戶或特定場景
- 不建議對(duì)普通用戶賬戶使用
替代方案:
# 使用SSH密鑰認(rèn)證替代密碼 ssh-keygen -t rsa -b 4096 ssh-copy-id user@host # 禁用密碼登錄 sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config sudo systemctl restart sshd
審計(jì)要求:
# 記錄密碼策略變更
echo "$(date): 設(shè)置用戶 $USER 密碼永不過期" | sudo tee -a /var/log/security_changes.log
# 定期審計(jì)永不過期賬戶
sudo awk -F: '$5 == "99999" {print $1}' /etc/shadow | tee /tmp/never_expire_users.txt
總結(jié)
| 方法 | 適用場景 | 持久性 | 影響范圍 |
|---|---|---|---|
chage 命令 | 單個(gè)用戶設(shè)置 | 永久 | 僅指定用戶 |
| 修改shadow文件 | 批量或精確控制 | 永久 | 系統(tǒng)范圍 |
usermod 命令 | 簡單設(shè)置 | 永久 | 僅指定用戶 |
| login.defs配置 | 新用戶默認(rèn)設(shè)置 | 永久 | 所有新用戶 |
推薦做法:
- 生產(chǎn)環(huán)境使用
chage命令進(jìn)行精確控制 - 服務(wù)賬戶可以設(shè)置密碼永不過期
- 定期審計(jì)永不過期賬戶
- 結(jié)合其他安全措施(如密鑰認(rèn)證、多因素認(rèn)證)
通過以上方法,您可以靈活地管理 Linux 系統(tǒng)中的用戶密碼過期策略,根據(jù)實(shí)際需求平衡安全性和便利性。
到此這篇關(guān)于Linux設(shè)置賬號(hào)密碼永不過期的方法匯總的文章就介紹到這了,更多相關(guān)Linux設(shè)置賬號(hào)密碼永不過期內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux如何用grep高效搜索二進(jìn)制日志并統(tǒng)計(jì)匹配結(jié)果
在日常開發(fā)和運(yùn)維工作中,日志分析是排查問題的重要手段,本文將詳細(xì)介紹?grep?處理二進(jìn)制日志的技巧,并給出完整的解決方案,需要的小伙伴可以參考一下2025-04-04
linux所有命令都失效顯示bash: xxxxx: command not f
這篇文章主要介紹了linux所有命令都失效顯示bash: xxxxx: command not found的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
apache無法啟動(dòng)的可能原因分析及對(duì)策
在遇到apache無法啟動(dòng)時(shí),可以參照如下可能的原因進(jìn)行分析與解決,有類似情況的朋友可以參考下哈2013-05-05
Linux mysql-5.6如何實(shí)現(xiàn)重置root密碼
這篇文章主要介紹了Linux mysql-5.6如何實(shí)現(xiàn)重置root密碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
如何搭建并配置HTTPD文件服務(wù)及訪問權(quán)限控制
這篇文章主要介紹了如何搭建并配置HTTPD文件服務(wù)及訪問權(quán)限控制的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06

