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系统中排查网速慢问题时,需结合网络连通性测试、带宽性能分析及系统资源检查等多维度方法定位原因,以下从基础排查到专业工具使用,详细说明具体操作步骤和工具选择,基础网络连通性排查首先需确认是否为真实网速问题,而非网络中断或配置错误,基础命令可快速判断网络状态:ping测试:检测目标服务器延迟和丢包率,例……

    2025年10月9日
    3500
  • Linux系统如何重启php-fpm服务?详细操作步骤与方法有哪些?

    在Linux服务器管理中,php-fpm(PHP FastCGI Process Manager)作为PHP的核心进程管理工具,负责处理PHP请求的动态解析与响应,当PHP应用出现异常、配置文件更新或需要优化性能时,重启php-fpm是常见的操作,本文将详细介绍Linux环境下重启php-fpm的多种方法、注意……

    2025年8月26日
    5400
  • Linux环境下删除用户组的详细步骤和常见错误解决方法是什么?

    在Linux系统中,用户组是管理用户权限和资源访问的重要机制,随着系统运维或业务变化,可能需要删除不再需要的用户组,删除用户组需谨慎操作,避免影响系统或用户的正常使用,以下是详细的操作步骤和注意事项,删除用户组前的准备工作在执行删除操作前,需确认以下内容,确保删除过程安全可控:检查组是否存在:首先确认目标用户组……

    2025年10月6日
    2100
  • cdlinux系统如何获取pin码?详细操作步骤是什么?

    在Linux系统中,CDLinux作为一种轻量级的应急系统,常用于网络诊断、数据恢复等场景,获取PIN码的需求可能涉及多个方面,例如Wi-Fi网络的WPS PIN码解锁、设备解锁PIN码,或特定服务的认证PIN码,本文将以最常见的Wi-Fi WPS PIN码获取为例,详细说明在CDLinux环境中通过工具扫描……

    2025年9月25日
    3700
  • Linux光盘如何轻松挂载?

    理解挂载概念挂载(Mount):Linux通过“挂载点”(一个目录)访问外部存储设备(如光盘),简单说,就是将光盘内容“链接”到指定目录,光盘设备标识:通常为 /dev/sr0 或 /dev/cdrom(后者是前者的软链接),可通过命令确认:ls -l /dev/cdrom* # 查看设备符号链接挂载光盘的详细……

    2025年6月23日
    7500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信