银河麒麟系统中用户账户失效问题可通过五种方法设置有效期:一、chage命令直接设定;二、useradd创建时指定;三、手动修改/etc/shadow第8字段;四、配置/etc/default/useradd默认过期时间;五、usermod调整状态。

如果您在银河麒麟操作系统中发现用户账户无法登录并提示“账户已失效”,或需对特定用户(如三权账户 sysadmin、secadmin、audadmin)实施周期性权限管控,则可能是账户本身设置了过期时间或未配置有效期策略。以下是设置用户账户有效期的多种方法:
一、使用 chage 命令设置现有账户有效期
chage 是 Linux 系统标准工具,专用于管理用户密码及账户生命周期参数,其 -E 选项可直接设定账户整体失效日期,该设置写入 /etc/shadow 第8字段,具有最高优先级且立即生效。
1、查看目标账户当前有效期状态:sudo chage -l username
2、将账户 username 的有效期设为 2026年12月31日:sudo chage -E 2026-12-31 username
3、若需取消账户过期限制(即永不过期),执行:sudo chage -E -1 username
4、验证修改结果,确认“Account expires”字段已更新:sudo chage -l username
二、创建新用户时直接指定账户有效期
useradd 命令支持在用户建立阶段即绑定账户截止时间,避免后续补设;该方式适用于临时账号、外包人员或测试账户等有明确生命周期的场景,参数写入 shadow 文件第8字段,与 chage -E 效果一致。
1、创建用户名为 tempuser、家目录自动创建、账户于 2026年08月15日失效的新用户:sudo useradd -e 2026-08-15 -m tempuser
2、为该用户设置初始登录密码:sudo passwd tempuser
3、检查账户信息是否包含指定过期时间:sudo chage -l tempuser
三、通过修改 /etc/shadow 文件手动设置
/etc/shadow 是账户时效控制的底层存储文件,第8字段(以冒号分隔)表示账户过期日期,单位为自1970年1月1日起的天数;此方法绕过命令行工具,适用于批量脚本化操作或 chage 不可用的极简环境,但存在高风险,必须严格校验数值。
1、计算目标日期对应天数(例如 2026年12月31日):date -d "2026-12-31" +%s | awk '{print int($1/86400)}'
2、备份原始 shadow 文件:sudo cp /etc/shadow /etc/shadow.bak
本文档主要讲述的是Android 操作系统的介绍;Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
3、使用 root 权限编辑文件:sudo vim /etc/shadow
4、定位到目标用户所在行,将第8个字段(原值可能为空或为数字)替换为上步计算所得天数,例如:username:$6$...:19327:0:99999:7::19999:(末尾第8字段 19999 表示 2026-12-31)
5、保存退出后立即验证:sudo chage -l username
四、配置新建用户默认账户有效期
/etc/default/useradd 文件定义了 useradd 命令的全局默认行为,其中 EXPIRE 参数决定所有新创建用户(不含显式指定 -e 的情况)的统一过期时间;该设置仅影响未来新建账户,对已有用户无作用,适合组织级统一策略部署。
1、查看当前默认过期设置:sudo grep EXPIRE /etc/default/useradd
2、将新建用户默认账户过期时间设为 2027年06月30日:sudo useradd -D -e 2027-06-30
3、确认修改已写入配置:sudo useradd -D | grep EXPIRE
4、新建测试用户并验证其继承默认过期时间:sudo useradd testdef && sudo chage -l testdef
五、使用 usermod 命令调整账户状态
usermod 提供快速启用/禁用账户的能力,其 -e 和 -U/-L 选项分别控制账户过期时间与锁定状态,适用于紧急恢复或临时停用场景;该命令不修改密码策略,仅作用于账户访问层。
1、将已失效账户 username 的过期时间延至 2099年12月31日(逻辑上视为永不过期):sudo usermod -e 2099-12-31 username
2、解锁被锁定的账户(解除密码错误锁定或管理员手动锁定):sudo usermod -U username
3、强制锁定账户(立即禁止登录,无论密码是否有效):sudo usermod -L username
4、验证账户状态变更:sudo chage -l username 与 sudo passwd -S username










