银河麒麟系统密码90天强制修改策略可通过chage命令彻底移除:单用户执行sudo chage -m -1 -w 0 -i -1 $user;批量处理可用uid筛选或用户名列表脚本;还需修改/etc/login.defs中pass_max_days为-1以禁用新用户默认继承。

银河麒麟系统已对账户启用密码90天强制修改策略,每次登录都提示“Your password will expire in X days”,影响日常操作连续性,需彻底移除该限制。
用chage命令清除单个用户密码过期策略
这是最直接、最安全的方式,适用于你当前能正常登录并拥有sudo权限的场景。
第一步:打开终端,执行以下命令查看当前用户的密码策略详情:
sudo chage -l $USER
第二步:确认输出中“Maximum number of days between password change”显示为90,且“Password expires”有具体日期——这说明策略已生效。
第三步:执行命令取消密码最长有效期限制:
sudo chage -M -1 $USER
第四步:同步清除警告天数与宽限期,避免残留提示:
sudo chage -W 0 -I -1 $USER
执行完成后立即生效,下次登录不再出现到期提醒。注意:【-M -1 表示密码永不过期,不是输入0;输入0会导致密码立即过期】。
批量清除多个用户的90天策略
当你需要为运维组、审计组等多账户统一解除限制时,不能逐个执行chage,应使用脚本方式处理。
方法一:基于UID范围自动筛选并清理(推荐)
运行以下命令,为所有普通用户(UID ≥ 1000)清除密码过期策略:
getent passwd | awk -F: '$3 >= 1000 {print $1}' | xargs -I {} sudo chage -M -1 -W 0 -I -1 {}
方法二:从指定文件读取用户名列表
先准备一个纯文本文件 users-to-unlock.txt,每行一个用户名(如:audadmin、secops、testuser);再执行:
sudo awk '{print "chage -M -1 -W 0 -I -1 " $1}' users-to-unlock.txt | sh
执行前请确保该文件路径正确、无空行、无中文字符或制表符混入,否则部分用户会跳过设置。
禁用新用户默认继承90天策略
仅清除现有用户策略还不够——若/etc/login.defs仍保留PASS_MAX_DAYS 90,后续新建的账户会自动带上该限制。
执行sudo nano /etc/login.defs,找到这一行:
PASS_MAX_DAYS 90
将其改为:
PASS_MAX_DAYS -1
保存退出即可。此操作不影响任何已有账户,只控制未来通过useradd创建的新用户。
注意:【修改后必须手动为已存在用户执行chage -M -1,/etc/login.defs对老用户完全无效】。











