自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

告別密碼過期困擾,一鍵部署B(yǎng)ash腳本,智能監(jiān)控密碼過期風險

系統(tǒng) Linux 運維
如果你也因為密碼過期而頭疼過,那么今天這篇文章肯定能幫到你。讓我們從根源上解決這個問題,用一行命令和一小段Bash腳本來監(jiān)控 Linux 密碼過期的風險,并提前發(fā)出警告!

早上,辦公室的咖啡味還沒散去,運維工程師小李就發(fā)現(xiàn)系統(tǒng)里突然出現(xiàn)了很多工單。原來是一個重要賬號的密碼過期了,導致自動化任務無法運行。大屏幕上不斷閃爍的報警信息像是在提醒大家:密碼過期的問題不能忽視。

如果你也因為密碼過期而頭疼過,那么今天這篇文章肯定能幫到你。讓我們從根源上解決這個問題,用一行命令和一小段Bash腳本來監(jiān)控 Linux 密碼過期的風險,并提前發(fā)出警告!

為何需監(jiān)控密碼過期?

在實際運維管理中,定期更改密碼可以有效降低系統(tǒng)風險,但這也會帶來不少麻煩:

  • 自動任務中斷:腳本或備份程序依賴賬號登錄,密碼過期直接導致任務失敗。
  • 服務不可用:關鍵服務因密碼問題而中斷,可能會引發(fā)業(yè)務停擺。
  • 運維效率下降:緊急處理密碼問題往往耗費大量人力、時間和資源。

因此,建立一套自動化、智能化的密碼過期監(jiān)控方案,不僅可以提前預警,還能大幅提升系統(tǒng)穩(wěn)定性和運維效率。

自動化密碼過期監(jiān)控方案

(1) 工作原理

整個方案基于Linux內置的chage 命令,實現(xiàn)如下幾大功能:

  • 信息采集:使用 chage -l <用戶名> 獲取密碼有效期信息。
  • 時間計算:利用 date 工具將密碼過期時間轉換為 UNIX 時間戳,計算剩余天數(shù)。
  • 觸發(fā)提醒:當剩余天數(shù)低于閾值(例如 7 天)時,自動發(fā)送郵件、記錄日志。

(2) 所需工具

  • chage:查詢用戶密碼狀態(tài)的命令。
  • chpasswd: 修改用戶密碼。
  • date:進行日期與時間轉換。
  • mail:郵件提醒工具(可選)。
  • cron:定時任務調度,實現(xiàn)自動運行。

輕松部署密碼預警

先設置幾個變量,然后在整個腳本里都能用。

# 配置區(qū)域:根據(jù)實際需求修改以下變量
USERS=("root" "user2" "user3")  # 需要監(jiān)控的用戶數(shù)組
WARNING_DAYS=7                   # 提前預警天數(shù)
LOG_FILE="/var/log/password_change.log"
PASSWORD_LENGTH=16               # 生成密碼長度
MAIL_NOTIFY="admin@example.com"  # 通知郵箱(需先配置郵件服務)

定義一個函數(shù),它的主要功能就是生成密碼。

# 密碼生成函數(shù)(兼容沒有pwgen的環(huán)境)
generate_password() {
    # 方法1:使用openssl生成(默認)
    openssl rand -base64 20 | tr -dc 'a-zA-Z0-9!@#$%^&*()_+' | head -c${PASSWORD_LENGTH}
}

為了后面記錄日志方便,咱們定義一個專門用來記日志的函數(shù)。

# 日志記錄函數(shù)
log_message() {
    local timestamp=$(date "+%Y-%m-%d %H:%M:%S")
    echo "[${timestamp}] $1" >> "${LOG_FILE}"
}

主函數(shù)先用chage -l命令獲取用戶賬戶的信息,然后用grep和cut工具找出過期時間。接著計算距離過期還有多少天,如果這個天數(shù)少于預先設定的天數(shù),就更新用戶的密碼。

# 主程序
for USERNAME in"${USERS[@]}"; do
    # 檢查用戶是否存在
    if ! id"${USERNAME}" &>/dev/null; then
        log_message "[${USERNAME}] 錯誤:用戶不存在"
        continue
    fi

    # 獲取密碼過期信息
    password_info=$(chage -l "${USERNAME}" 2>/dev/null)
    if [ $? -ne 0 ]; then
        log_message "[${USERNAME}] 錯誤:無法獲取密碼策略信息"
        continue
    fi

    # 解析過期時間
    expiry_line=$(grep 'Password expires' <<< "${password_info}" | cut -d':' -f2 | sed 's/^ *//;s/ *$//')

    if [[ "${expiry_line}" == "never" ]]; then
        log_message "[${USERNAME}] 密碼永不過期"
        continue
    fi

    # 轉換為時間戳
    expiry_ts=$(date -d "${expiry_line}" +%s 2>/dev/null)
    if [[ -z "${expiry_ts}" ]]; then
        log_message "[${USERNAME}] 錯誤:無法解析過期時間 '${expiry_line}'"
        continue
    fi

    # 計算剩余天數(shù)
    current_ts=$(date +%s)
    days_left=$(( (expiry_ts - current_ts) / 86400 ))

    if (( days_left > WARNING_DAYS )); then
        log_message "[${USERNAME}] 密碼狀態(tài)正常,剩余天數(shù):${days_left}"
        continue
    fi

    # 密碼修改流程
    log_message "[${USERNAME}] 開始密碼修改流程,剩余天數(shù):${days_left}"
    
    # 生成新密碼
    new_password=$(generate_password)
    if [ -z "${new_password}" ]; then
        log_message "[${USERNAME}] 錯誤:密碼生成失敗"
        continue
    fi

    # 修改密碼(兼容不同發(fā)行版)
    ifecho"${USERNAME}:${new_password}" | chpasswd 2>/dev/null; then
        log_message "[${USERNAME}:{$new_password}] 密碼修改成功"
        
        # 發(fā)送郵件通知(需要配置mailutils/postfix)
        if [ -n "${MAIL_NOTIFY}" ]; then
            echo"[${USERNAME}] 密碼已自動重置" | mail -s "密碼變更通知""${MAIL_NOTIFY}"
        fi

        # 更新最后修改日期(可選)
        chage --lastday 0 "${USERNAME}"
    else
        log_message "[${USERNAME}] 錯誤:密碼修改失敗"
    fi
done

exit 0

結合 Cron 實現(xiàn)周期檢測

為了讓系統(tǒng)自動檢測密碼狀態(tài),我們只需要將該腳本添加到定時任務中。示例:

# 編輯定時任務
crontab -e

# 添加如下行,每天早上8點檢測用戶 "admin" 的密碼狀態(tài)
0 8 * * * /path/to/auto_update_expired_passwords.sh  2>&1

通過這一配置,你的系統(tǒng)將每天自動運行檢測,并記錄日志,確保每個關鍵賬號都受到監(jiān)控。

總結

在運維工作里,小細節(jié)往往能決定最終結果的好壞。一個簡單好用的密碼到期提醒腳本,可以幫你大大減少出問題的風險。不管是處理自動化任務、查看系統(tǒng)日志還是維護重要服務,如果能提前收到警告,就能省下很多緊急修復的時間,保證系統(tǒng)穩(wěn)定運行。

趕緊動手試試這個方法吧,讓你更好地管理Linux系統(tǒng)!也別忘了把這篇文章收藏并分享給其他人,幫助更多的朋友解決密碼過期帶來的麻煩,一起邁向更智能的運維之路!

責任編輯:趙寧寧 來源: 攻城獅成長日記
相關推薦

2021-01-03 09:33:48

密碼數(shù)字身份加密解密

2010-10-29 11:45:09

oracle用戶密碼

2010-04-29 09:16:16

Oracle密碼過期處

2013-10-08 10:07:58

2011-04-15 09:11:21

2009-10-28 13:58:35

Oracle密碼過期

2015-11-03 15:29:49

ONOS開放網(wǎng)絡操作系統(tǒng)SDN

2024-11-25 18:53:55

Linux

2025-03-07 10:50:59

腳本SSH信任服務器

2019-04-26 19:30:45

微軟Windows密碼過期

2017-08-31 15:57:53

數(shù)據(jù)Oracle用戶密碼

2023-08-02 11:39:21

SSL證書過期

2010-09-26 15:16:16

俄羅斯破解WiFi密碼軟件

2021-05-20 10:36:30

Chrome瀏覽器系統(tǒng)技巧

2020-09-01 14:28:41

ChromeGoogle瀏覽器

2023-06-15 10:00:00

Jenkins任務操作

2025-04-02 09:10:00

LinuxShell腳本

2013-08-06 18:01:30

2019-10-09 14:47:26

人工智能AI

2024-04-08 13:59:03

大模型Replicate
點贊
收藏

51CTO技術棧公眾號