讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在Linux中修改用户密码过期警告天数 Linux设置密码策略的方法

冬雪君_4161

冬雪君_4161

发布时间:2026-05-20 17:15:35

|

1049人浏览过

|

来源于php中文网

原创

Linux系统密码过期警告天数由chage -W设置,该值必须小于-M设定的最大有效期才生效,仅对交互式登录用户提示,且不适用于已过期密码或非密码认证场景。

如何在linux中修改用户密码过期警告天数 linux设置密码策略的方法

chage -W 设置密码过期警告天数

用户在密码到期前收不到提醒,通常是因为 -W 参数没设或设得太小。这个值不控制“密码什么时候过期”,只控制“提前几天开始弹警告”。默认可能是 7 天,但很多系统压根没配,导致用户登录时突然被锁。

执行命令即可立即生效:

sudo chage -W 14 username

注意:-W 值必须小于 -M(最大有效期),否则警告不会触发。比如 -M 30 却设 -W 45,实际无效;系统日志里也不会报错,只会静默忽略。

  • 警告仅在用户通过 SSH、console 或 GUI 登录时显示,不适用于 cron、systemd 服务等后台上下文
  • 警告信息是 PAM 自动插入的,无法自定义文案,但可通过修改 /etc/pam.d/sshd 或 /etc/pam.d/login 中的 pam_pwquality.so 行加 retry=3 提升交互体验
  • 如果用户已处于密码过期状态(chage -l 显示 Password expires: password must be changed),-W 不再起作用

pam_pwquality.so 配置密码复杂度规则

只改 chage 不够——用户可能设个 Abc123!@# 就过关,但这种密码仍易被爆破。真正起效的是 pam_pwquality.so 模块,它在每次执行 passwd 时校验强度。

关键不是往 /etc/pam.d/common-password 里随便加一行,而是确保它出现在所有 password [default=ok] 规则之前,且用 requisite 类型中断流程:

password requisite pam_pwquality.so retry=3 minlen=12 difok=5 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 maxrepeat=2 reject_username=1

常见踩坑点:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • minlen=12 和 /etc/login.defs 里的 PASS_MIN_LEN 冲突:后者只影响新用户初始策略,不干预 passwd 修改行为,优先级低于 PAM 模块
  • difok=5 要求新旧密码至少 5 字符不同,但如果用户用 passwd 改密时输错两次,retry=3 用完后直接退出,不会回退到旧密码
  • 特殊字符限制(ocredit=-1)对中文终端或某些 locale 可能误判,建议搭配 en_US.UTF-8 环境测试

强制用户下次登录改密:chage -d 0 的真实含义

chage -d 0 username 并不是“把密码设为空”或“标记为弱密码”,而是把 shadow 文件中 passwd 字段的最后修改时间设为 1970-01-01。系统一比对:「上次改密是 56 年前,早该换了」,于是拦截登录流程。

验证方式很简单:

sudo chage -l username

输出中若出现 Last password change : Jan 01, 1970,就表示已生效。用户下次输入正确密码后,不会进 shell,而是直接跳转到 passwd 提示符要求重设。

  • 该操作对 root 用户也有效,但 root 密码过期后仍可物理控制台登录(除非禁用 root shell)
  • 如果用户用 SSH 密钥登录,chage -d 0 不会触发改密流程——因为没走密码认证路径。必须配合 PasswordAuthentication yes 才可靠
  • 批量设置时别用循环跑 chage -d 0 后立刻 passwd -d 清空密码:这会导致账户无密码且强制改密,反而无法登录

/etc/login.defs 与全局策略的边界

/etc/login.defs 只影响新创建的用户(useradd),对已有用户完全无效。它设定的是「模板值」,写入 shadow 时的一次性快照。

例如改了 PASS_MAX_DAYS 90,再新建用户 testuser,其 chage -l testuser 会显示 Maximum number of days between password change : 90;但对已存在的 admin 用户,必须显式运行 chage -M 90 admin 才会更新。

  • PASS_WARN_AGE 14 是 chage -W 的默认值,仅当创建用户时未指定 -W 才采纳
  • PASS_MIN_LEN 12 在大多数现代发行版中已被 pam_pwquality.so 忽略,仅作文档参考
  • 修改 /etc/login.defs 后,务必检查 useradd -D 输出是否同步,避免因缓存或语法错误导致新用户策略失效

真正容易被忽略的是:chage 设置和 pam_pwquality 校验属于两个独立阶段,一个管「什么时候必须改」,一个管「改的时候必须多强」。漏掉任一环,策略就形同虚设。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4210

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3553

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2793

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

6850

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

6482

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3733

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

3225

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

3459

2023.07.25

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

40

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn