Linux服务器如何修改自己的密码?

Linux服务器管理中,定期修改密码是保障系统安全的重要措施,能有效防止密码泄露或被暴力破解,无论是普通用户还是root用户,掌握正确的密码修改方法都十分必要,本文将详细介绍Linux服务器中修改自身密码的多种场景及操作步骤,包括常规修改、非交互式修改以及忘记密码时的应急处理,并补充密码策略相关注意事项,帮助用户全面掌握操作流程。

linux服务器如何修改自己的密码

常规场景下修改密码:使用passwd命令

passwd是Linux系统中专门用于修改用户密码的命令,几乎所有发行版都默认支持,操作简单且安全,根据用户身份不同,操作流程略有差异:

普通用户修改自己的密码

普通用户只能修改自己的密码,无需root权限,但需输入当前密码进行身份验证,具体步骤如下:

  • 步骤1:通过SSH或终端登录Linux服务器,确保当前用户身份为目标用户(如user1)。
  • 步骤2:在命令行输入passwd,按回车执行。
  • 步骤3:系统提示Current password:(当前密码),输入当前密码(输入时不会显示任何字符,属于正常现象)。
  • 步骤4:验证通过后,系统提示New password:(新密码),输入新密码(同样不显示字符)。
  • 步骤5:系统再次提示Retype new password:(确认新密码),再次输入新密码以确认。
  • 步骤6:若两次输入的新密码一致且符合系统密码策略,系统会显示passwd: password updated successfully(密码修改成功),新密码立即生效。

root用户修改自己的密码

root用户作为超级管理员,修改自身密码时无需验证当前密码,流程更简单:

  • 直接输入passwd,按回车后直接输入两次新密码即可,无需当前密码验证。
  • 若需修改其他用户的密码(如user1),可使用passwd user1,系统会要求输入root密码(部分发行版可能直接执行,无需额外验证)。

非交互式修改密码:适用于自动化场景

在脚本部署或批量管理场景中,可能需要非交互式修改密码(即无需手动输入密码),可通过以下两种方式实现:

使用echo+管道+passwd --stdin

--stdin选项允许passwd从标准输入读取密码,结合echo命令可实现非交互式修改(需注意密码明文传输的安全性风险)。
示例

echo "newpassword" | passwd --stdin username

执行后,系统会直接将newpassword设置为username的新密码,无需手动输入。
注意事项

linux服务器如何修改自己的密码

  • 此方法仅在CentOS/RHEL等部分发行版中默认支持,Ubuntu/Debian等发行版可能未安装passwd--stdin支持,需通过apt install passwd(Ubuntu)或yum install passwd(CentOS)确保工具版本支持。
  • 密码以明文形式出现在命令行或脚本中,可能被进程监控或日志记录,建议对脚本文件设置严格权限(如chmod 600 script.sh),或使用openssl等工具加密存储密码。

使用chpasswd批量修改密码

chpasswd是专门用于批量修改用户密码的工具,支持从文件或标准读取用户名和密码对,格式为username:password,更适合自动化场景。
示例

  • 临时修改
    echo "username:newpassword" | chpasswd
  • 从文件批量修改(推荐):
    创建密码文件(如passwd.txt),格式为每行一个用户名:密码

    user1:pass123
    user2:abc@456

    执行命令:

    chpasswd < passwd.txt

    执行后文件中的密码对会批量生效,操作完成后建议立即删除密码文件(rm passwd.txt)。
    注意事项

  • chpasswd通常需要root权限执行,普通用户可能无法使用。
  • 密码文件同样存在明文风险,需设置文件权限为600(仅所有者可读写),并存储在安全目录中。

忘记密码时的应急处理:重置密码流程

若用户忘记自己的密码,且无法通过passwd命令修改,需通过root权限重置密码(此操作会清空原密码,需谨慎执行),具体步骤因发行版不同略有差异,以下以CentOS和Ubuntu为例:

CentOS/RHEL系统:进入单用户模式重置密码

  • 步骤1:重启服务器,在GRUB启动菜单出现时,快速按下e键进入编辑模式。
  • 步骤2:找到以linuxlinux16开头的行,在行尾添加rd.break(CentOS 7+)或single(CentOS 6),按Ctrl+X启动。
  • 步骤3:系统进入紧急模式(或单用户模式),挂载根文件系统为可读写模式:
    mount -o remount,rw /sysroot
  • 步骤4:切换到root环境:
    chroot /sysroot
  • 步骤5:使用passwd username重置目标用户密码(如passwd user1),输入两次新密码。
  • 步骤6:更新SELinux信息(若系统启用SELinux):
    touch /.autorelabel
  • 步骤7:退出chroot环境,重启服务器:
    exit && reboot

Ubuntu/Debian系统:进入紧急模式重置密码

  • 步骤1:重启服务器,在GRUB菜单选择Advanced options for Ubuntu,按e键进入编辑模式。
  • 步骤2:选择recovery mode(恢复模式),按e键编辑启动参数,在ro quiet splash后添加rw init=/bin/bash,按Ctrl+X启动。
  • 步骤3:系统进入bash环境,挂载根文件系统为可读写模式(通常已自动挂载,可执行mount -o remount,rw /确认)。
  • 步骤4:直接使用passwd username重置密码(如passwd user1),输入两次新密码。
  • 步骤5:执行exec /sbin/initreboot重启服务器,使新密码生效。

注意事项

  • 重置密码需物理服务器访问或KVM/IPMI等远程控制权限,VPS用户需联系服务商协助。
  • 操作前建议备份重要数据,避免误操作导致系统异常。

密码策略与安全建议

为提升密码安全性,系统管理员通常会配置密码策略,可通过以下文件查看或调整:

linux服务器如何修改自己的密码

  • /etc/login.defs:定义密码有效期(PASS_MAX_DAYSPASS_MIN_DAYS)、最小长度(PASS_MIN_LEN)等全局策略。
  • /etc/pam.d/passwd:通过PAM模块(如pam_cracklib.so)设置密码复杂度要求(如必须包含大小写字母、数字、特殊字符)。

安全建议

  • 密码长度至少12位,包含大小写字母、数字及特殊字符(如@#$%^&*),避免使用生日、姓名等易猜测信息。
  • 定期更换密码(建议每90天一次),避免在多平台使用相同密码。
  • 禁用或限制root远程登录(通过PermitRootLogin no配置SSH),改用普通用户+sudo提权。

不同场景下密码修改命令总结

场景 命令/操作示例 适用对象 注意事项
正常修改密码 passwd 所有用户 普通用户需验证当前密码
root修改其他用户密码 passwd username root用户 无需当前密码验证
非交互式修改 echo "newpass" | passwd --stdin user 所有用户(需权限) 需发行版支持--stdin
批量修改(文件方式) chpasswd < passwd.txt root用户 密码文件需格式为user:pass
CentOS重置密码 进入单用户模式→chroot /sysrootpasswd root用户 需物理访问或远程控制权限
Ubuntu重置密码 进入恢复模式→rw init=/bin/bashpasswd root用户 需物理访问或远程控制权限

相关问答FAQs

Q1:修改密码后,为什么SSH登录时仍提示“Permission denied, please try again”?
A:可能原因包括:① 新密码输入错误(注意大小写及特殊字符);② 密码修改后未完全生效(可尝试重新登录或重启SSH服务:systemctl restart sshd);③ 密码策略未满足要求(如长度不足、缺少字符类型),检查/var/log/secure(CentOS)或/var/log/auth.log(Ubuntu)日志,定位具体错误原因。

Q2:如何查看当前密码的有效期?
A:普通用户可通过chage -l username查看密码信息,包括密码过期时间、最小使用天数等。

chage -l user1

输出示例:

Last password change                                    : Oct 10, 2023  
Password expires                                        : Jan 08, 2024  
Password inactive                                       : never  
Account expires                                         : never  
Minimum number of days between password change          : 0  
Maximum number of days between password change          : 90  
Number of days of warning before password expires       : 7  

若需修改有效期,可使用chage -M 90 user1(设置密码最大有效期为90天),或chage -M -1 user1(设置密码永不过期(不推荐))。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/31981.html

(0)
酷番叔酷番叔
上一篇 2025年9月28日 20:34
下一篇 2025年9月28日 20:50

相关推荐

  • Linux设备注册的实现步骤与流程是怎样的?

    Linux设备注册是驱动开发中的核心环节,其本质是将硬件设备抽象为Linux内核可管理的设备对象,并建立与驱动的关联,从而实现用户空间对设备的访问,整个过程依托Linux设备模型展开,涉及设备号分配、设备结构体初始化、设备添加到系统模型等多个步骤,以下从设备模型基础、字符设备注册流程、其他设备类型注册及注意事项……

    2025年10月5日
    6200
  • Linux安装中文字体的具体步骤是什么?

    在Linux系统中,中文字体的安装是保障中文用户正常使用系统、浏览网页、编辑文档的基础,由于Linux发行版众多,字体管理方式略有差异,本文将详细介绍不同场景下安装中文字体的方法,包括系统包管理器安装、手动安装、字体管理工具使用及配置优化,帮助用户解决中文显示问题,安装前的准备在安装中文字体前,建议先检查系统是……

    2025年8月28日
    8900
  • 如何在Linux系统搭建我的世界服务器?

    搭建Linux环境下的我的世界(Minecraft)服务器,需要经过环境配置、软件安装、参数调整及日常维护等步骤,以下是详细流程,涵盖从零开始的完整操作指南,准备工作在开始搭建前,需确保服务器满足基本硬件与系统要求,并完成网络配置,硬件要求:内存:至少4GB RAM(推荐8GB以上,玩家越多需越大,10人以上建……

    2025年9月28日
    6700
  • 如何制作优盘Linux启动盘?操作步骤与方法有哪些?

    制作优盘Linux(也称为“Live USB”)是一种便携式的Linux系统部署方式,用户可以通过优盘启动完整的Linux环境,无需安装到硬盘即可体验系统、进行数据恢复或随身携带个人工作环境,以下是详细的制作步骤和注意事项,涵盖工具准备、系统选择、制作流程及后续使用,准备工作在开始制作前,需确保以下材料和工具准……

    2025年10月4日
    6000
  • Linux内存缓存为何占用过高?

    Linux内存缓存是内核利用空闲内存缓存磁盘数据,旨在加速系统性能,这部分内存可被应用程序需要时快速回收,并非浪费,有效减少了磁盘I/O操作。

    2025年6月12日
    13200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信