如何实现Linux用户密码自动过期 chage命令使用技巧

发布时间 - 2025-07-10 00:00:00    点击率:

设置linux用户密码自动过期主要通过chage命令实现。1. 使用chage -l username可查看用户密码有效期信息,包括上次修改时间、最长使用期限、警告天数等;2. 用chage -m [天数] username设置密码最长使用期限,超期后登录将被强制修改;3. 用chage -w [天数] username设置密码过期前的警告提示;4. 用chage -d 0 username强制用户首次登录时必须修改密码;5. 可组合使用chage -m -w -i参数统一配置密码策略;6. 使用chage -e -1 username可取消密码过期限制。注意该命令仅对本地账户生效,ldap或ad用户需额外配置,同时应确保pam模块启用密码策略功能,设置完成后建议复查配置。

设置Linux用户密码自动过期,主要是通过chage命令来完成的。这个命令可以控制用户密码的有效期,非常适合在服务器管理中用于强制用户定期修改密码。


查看当前密码过期信息

如果你想知道某个用户的密码有效期情况,可以用下面这个命令:

chage -l username

它会显示该用户的密码上次修改时间、密码最长使用期限、是否启用过期提醒等信息。

比如你可能会看到这样的输出:

Last password Change                    : Sep 01, 2025  
Password Expiry                         : Oct 01, 2025  
Minimum Number of Days Between Password Change  : 0  
Maximum Number of Days Between Password Change  : 30  
Number of Days of Warning Before Password Change : 7

这说明该用户每30天必须改一次密码,并且提前7天会收到提醒。


设置密码最长使用期限

如果你想让某个用户的密码每隔一段时间就必须更换,可以用-M参数指定最大天数:

chage -M 60 username

上面这条命令表示该用户的密码最多只能用60天,到期后下次登录会被强制修改密码。

注意:如果系统里有大量用户需要统一设置,可以考虑写个脚本批量处理,或者结合/etc/login.defs文件中的默认配置。

设置密码过期前的警告天数

为了让用户提前知道密码快过期了,你可以设置一个提醒机制。用的是-W参数:

chage -W 5 username

这样,在密码过期前5天,用户每次登录时都会收到提示:“You are required to change your password immediately (password expired).”


强制用户首次登录修改密码

有时候我们创建了一个新用户,希望他们第一次登录时必须修改密码。这时候可以用-d 0命令:

chage -d 0 username

这会让系统的密码修改时间为“1970年1月1日”,从而触发密码已过期的状态,用户第一次登录就会被要求修改密码。

也可以组合使用其他参数一次性完成设置,例如:

chage -M 90 -W 7 -I 5 username

这段命令设置了密码最长使用90天、提前7天提醒、密码过期后还能登录5天(宽限期)。


小贴士和常见问题

  • 如果你想让某个用户永远不过期,可以用:

    chage -E -1 username
  • chage只对本地账户生效,如果是LDAP或AD认证的用户,可能需要另外配置。

  • 某些发行版默认不会强制用户修改密码,要确保PAM模块配置正确。

  • 修改完设置后建议用chage -l再确认一遍。


基本上就这些操作了。用好chage,能有效提升系统安全,特别是在多用户环境下。


# linux  # red  # 修改密码  # 可以用  # 如果你  # 使用期限  # 该用户  # 首次  # 期后  # 想让  # 的是  # 就会 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  长沙做网站要多少钱,长沙国安网络怎么样?  Linux安全能力提升路径_长期防护思维说明【指导】  MySQL查询结果复制到新表的方法(更新、插入)  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  Laravel PHP版本要求一览_Laravel各版本环境要求对照  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  高防服务器:AI智能防御DDoS攻击与数据安全保障  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  js实现点击每个li节点,都弹出其文本值及修改  如何快速启动建站代理加盟业务?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  Angular 表单中正确绑定输入值以确保提交与验证正常工作  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  如何在Windows环境下新建FTP站点并设置权限?  javascript中闭包概念与用法深入理解  如何在万网自助建站中设置域名及备案?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel怎么清理缓存_Laravel optimize clear命令详解  如何在 Pandas 中基于一列条件计算另一列的分组均值  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Java类加载基本过程详细介绍  Bootstrap CSS布局之列表  jQuery validate插件功能与用法详解  如何挑选优质建站一级代理提升网站排名?  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Laravel Docker环境搭建教程_Laravel Sail使用指南  历史网站制作软件,华为如何找回被删除的网站?  node.js报错:Cannot find module 'ejs'的解决办法  如何在IIS服务器上快速部署高效网站?  如何快速使用云服务器搭建个人网站?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  *服务器网站为何频现安全漏洞?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  香港服务器租用每月最低只需15元?  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  javascript基本数据类型及类型检测常用方法小结