在 Linux 系统中设置用户账号密码永不过期可以通过多种方式实现。以下是详细的操作指南方法一使用chage命令推荐1. 设置密码永不过期12345# 设置用户密码永不过期sudochage -M 99999 username# 同时设置账户永不过期sudochage -E -1 username2. 验证设置结果1234567891011# 查看用户密码策略sudochage -l username# 输出示例Last password change : Jan 01, 2023Password expires : neverPassword inactive : neverAccount expires : neverMinimum number of days between password change : 0Maximum number of days between password change : 99999Number of days of warning before password expires : 7方法二直接修改/etc/shadow文件1. 备份原始文件12# 备份shadow文件sudocp/etc/shadow/etc/shadow.backup2. 编辑shadow文件12345# 使用vipw命令安全编辑推荐sudovipw -s# 或者使用文本编辑器sudovi/etc/shadow3. 修改密码过期字段找到对应用户行将第5个字段密码最大天数改为9999912345# 修改前username:$6$xyz...:18687:0:90:7:30::# 修改后username:$6$xyz...:18687:0:99999:7:30::Shadow文件字段说明用户名加密密码最后修改密码的天数从1970-1-1开始最小密码年龄0表示可立即修改最大密码年龄99999表示永不过期密码过期前的警告天数密码过期后的宽限天数账户过期日期保留字段方法三使用usermod命令12345# 设置密码永不过期sudousermod-eusername# 或者设置过期日期为永不过期sudousermod-e -1 username方法四全局密码策略配置1. 修改/etc/login.defs文件1sudovi/etc/login.defs修改以下参数1234567891011# 密码最大天数永不过期PASS_MAX_DAYS 99999# 密码最小天数PASS_MIN_DAYS 0# 密码最小长度PASS_MIN_LEN 8# 密码过期前警告天数PASS_WARN_AGE 7注意此配置仅对新创建的用户有效已有用户需要单独设置。2. 批量修改现有用户123456789# 修改所有现有用户的密码策略foruserin$(getentpasswd|cut-d: -f1);dosudochage -M 99999 $userdone# 或者只修改有登录shell的用户foruserin$(getentpasswd|grep-v/nologin\|/false|cut-d: -f1);dosudochage -M 99999 $userdone方法五使用图形化工具如可用12345# 使用GNOME用户管理工具sudognome-users-admin# 使用KDE用户管理工具sudokuser验证和监控1. 检查密码策略12345# 检查所有用户密码过期设置sudoawk-F:{print $1 : $5}/etc/shadow# 检查即将过期的密码sudochage -l $(getentpasswd|cut-d: -f1) |grep-EPassword expires|Account expires|grep-vnever2. 创建监控脚本12345678910111213141516#!/bin/bash# check_password_expiry.shTODAY$(date%s)WARN_DAYS30whileIFS:read-r user _ _ _ max _ _ _;doif[[$max-ne99999 $max-ne-1 ]];thenexpire_date$(($(date-d1970-01-01 $max days%s)))days_left$(( (expire_date - TODAY) / 86400 ))if[[$days_left-le$WARN_DAYS]];thenecho警告: 用户 $user 的密码将在 $days_left 天后过期fifidone (sudoawk-F:{print $1 : $5}/etc/shadow)复制讲解恢复密码过期策略如果需要恢复密码过期策略12345# 恢复默认密码过期策略90天sudochage -M 90 username# 设置特定过期日期sudochage -E2024-12-31username安全注意事项风险评估永不过期密码降低了安全性适用于服务账户或特定场景不建议对普通用户账户使用
Linux设置账号密码永不过期的方法汇总
在 Linux 系统中设置用户账号密码永不过期可以通过多种方式实现。以下是详细的操作指南方法一使用chage命令推荐1. 设置密码永不过期12345# 设置用户密码永不过期sudochage -M 99999 username# 同时设置账户永不过期sudochage -E -1 username2. 验证设置结果1234567891011# 查看用户密码策略sudochage -l username# 输出示例Last password change : Jan 01, 2023Password expires : neverPassword inactive : neverAccount expires : neverMinimum number of days between password change : 0Maximum number of days between password change : 99999Number of days of warning before password expires : 7方法二直接修改/etc/shadow文件1. 备份原始文件12# 备份shadow文件sudocp/etc/shadow/etc/shadow.backup2. 编辑shadow文件12345# 使用vipw命令安全编辑推荐sudovipw -s# 或者使用文本编辑器sudovi/etc/shadow3. 修改密码过期字段找到对应用户行将第5个字段密码最大天数改为9999912345# 修改前username:$6$xyz...:18687:0:90:7:30::# 修改后username:$6$xyz...:18687:0:99999:7:30::Shadow文件字段说明用户名加密密码最后修改密码的天数从1970-1-1开始最小密码年龄0表示可立即修改最大密码年龄99999表示永不过期密码过期前的警告天数密码过期后的宽限天数账户过期日期保留字段方法三使用usermod命令12345# 设置密码永不过期sudousermod-eusername# 或者设置过期日期为永不过期sudousermod-e -1 username方法四全局密码策略配置1. 修改/etc/login.defs文件1sudovi/etc/login.defs修改以下参数1234567891011# 密码最大天数永不过期PASS_MAX_DAYS 99999# 密码最小天数PASS_MIN_DAYS 0# 密码最小长度PASS_MIN_LEN 8# 密码过期前警告天数PASS_WARN_AGE 7注意此配置仅对新创建的用户有效已有用户需要单独设置。2. 批量修改现有用户123456789# 修改所有现有用户的密码策略foruserin$(getentpasswd|cut-d: -f1);dosudochage -M 99999 $userdone# 或者只修改有登录shell的用户foruserin$(getentpasswd|grep-v/nologin\|/false|cut-d: -f1);dosudochage -M 99999 $userdone方法五使用图形化工具如可用12345# 使用GNOME用户管理工具sudognome-users-admin# 使用KDE用户管理工具sudokuser验证和监控1. 检查密码策略12345# 检查所有用户密码过期设置sudoawk-F:{print $1 : $5}/etc/shadow# 检查即将过期的密码sudochage -l $(getentpasswd|cut-d: -f1) |grep-EPassword expires|Account expires|grep-vnever2. 创建监控脚本12345678910111213141516#!/bin/bash# check_password_expiry.shTODAY$(date%s)WARN_DAYS30whileIFS:read-r user _ _ _ max _ _ _;doif[[$max-ne99999 $max-ne-1 ]];thenexpire_date$(($(date-d1970-01-01 $max days%s)))days_left$(( (expire_date - TODAY) / 86400 ))if[[$days_left-le$WARN_DAYS]];thenecho警告: 用户 $user 的密码将在 $days_left 天后过期fifidone (sudoawk-F:{print $1 : $5}/etc/shadow)复制讲解恢复密码过期策略如果需要恢复密码过期策略12345# 恢复默认密码过期策略90天sudochage -M 90 username# 设置特定过期日期sudochage -E2024-12-31username安全注意事项风险评估永不过期密码降低了安全性适用于服务账户或特定场景不建议对普通用户账户使用