linux 修改密码(建议收藏)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观

前言

在 Linux 系统的日常使用中,密码管理是一项基础且关键的操作。无论是服务器运维、开发环境配置,还是个人电脑的安全防护,掌握密码修改的技巧都至关重要。对于编程初学者和中级开发者而言,理解 passwd 命令、密码策略以及潜在的安全隐患,不仅能提升系统操作能力,还能为后续学习更复杂的 Linux 知识打下坚实基础。本文将从零开始,通过案例和代码示例,系统性地讲解如何在 Linux 环境中安全、高效地修改密码。


一、Linux 密码修改的基础操作

1.1 使用 passwd 命令修改密码

Linux 系统中最直接的密码修改工具是 passwd 命令。它的设计理念如同“密码守护者”,通过终端交互式界面引导用户完成密码更新。

基本语法:

sudo passwd [用户名]  

案例 1:修改当前用户密码

$ passwd  
Changing password for user developer.  
Current password: *********  # 输入当前密码  
New password: *********      # 设置新密码  
Retype new password: *********  # 确认新密码  

案例 2:修改其他用户密码(需管理员权限)

$ sudo passwd alice  

1.2 密码复杂度的“隐形规则”

Linux 系统默认会对密码设置一定的复杂度要求,例如:

  • 至少 8 个字符
  • 包含大小写字母、数字和符号
  • 不可与用户名或真实姓名相关

比喻: 这如同银行要求用户设置密码时,必须同时包含数字和字母,以避免“123456”这类简单组合。


二、进阶技巧:批量修改密码与自动化脚本

2.1 批量修改用户密码的场景

在服务器集群或多用户环境中,手动修改每个用户的密码效率极低。此时可通过脚本实现自动化操作。

案例 3:批量重置用户密码(需谨慎)

cat > users.txt <<EOF  
user1  
user2  
user3  
EOF  

while read username; do  
    echo "TempPass123! TempPass123!" | sudo passwd "$username"  
done < users.txt  

注意事项:

  • 直接写入密码到脚本存在安全隐患,建议结合 openssl 或其他加密工具
  • 修改后需提醒用户尽快更改临时密码

2.2 强制用户修改密码的策略

管理员可通过 chage 命令强制用户下次登录时修改密码。

案例 4:设置用户 alice 必须在下次登录时改密

sudo chage -d 2020-01-01 alice  # 将密码过期时间设为过去日期  

三、密码安全的深度解析

3.1 密码存储机制:哈希与盐值(Salt)

Linux 系统中,密码并非以明文形式存储,而是通过哈希算法(如 SHA-512)生成唯一摘要,并结合“盐值”防止彩虹表攻击。

比喻: 盐值如同给每份密码添加独特的调味剂,即使两个用户密码相同,存储后的哈希值也会完全不同。

3.2 密码复杂度策略的配置

通过 /etc/pam.d/system-auth/etc/security/pwquality.conf 文件,可自定义密码规则。例如:

minlen = 12  
ucredit = -1  
lcredit = -1  
dcredit = -1  

3.3 密码过期时间管理

通过 chage 命令可控制密码有效期,避免长期不变的密码成为安全隐患。

案例 5:设置用户 bob 的密码 90 天后过期

sudo chage -M 90 bob  

四、常见问题与解决方案

4.1 忘记密码的紧急恢复

若丢失管理员密码,可通过单用户模式重置:

  1. 系统启动时按住 Shift 进入 GRUB 菜单
  2. 选择内核版本,按 e 编辑启动参数
  3. ro 改为 rw init=/bin/bash
  4. 执行 passwd root 修改密码后重启

4.2 解决密码修改失败的常见错误

  • 错误 1:密码过于简单

    passwd: 所选的密码太简单  
    

    解决方法: 提升密码复杂度,或临时降低系统策略

  • 错误 2:权限不足

    passwd: Only root may specify a user name.  
    

    解决方法: 添加 sudo 或切换至 root 账户


五、密码管理的最佳实践

5.1 定期更新与多因素认证(MFA)

建议每 90 天修改一次密码,并结合硬件令牌、手机验证码等多因素认证机制。

5.2 避免密码泄露的日常习惯

  • 不在公共场合输入密码
  • 使用密码管理器(如 KeePassXC)生成并保存复杂密码
  • 定期检查 /var/log/auth.log 日志,发现异常登录尝试

结论

Linux 系统的密码修改看似简单,实则涉及安全策略、命令行工具和系统配置的深度理解。通过本文的分步讲解和案例演示,读者不仅能掌握基础操作,还能深入理解密码管理背后的逻辑。无论是应对日常运维需求,还是构建高安全性的开发环境,这些知识都将为您的 Linux 旅程提供重要支持。

提示: 实践是最好的老师,建议在虚拟机或测试环境中尝试本文的代码示例,逐步巩固操作技能。

最新发布