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系统如何添加FTP用户并配置其访问权限与登录目录?

    在Linux系统中添加FTP用户通常涉及安装FTP服务、创建用户、配置权限及优化安全设置等步骤,以下以常用的vsftpd(Very Secure FTP Daemon)为例,详细讲解完整流程,安装FTP服务(vsftpd)vsftpd是Linux下安全性较高的FTP服务器软件,首先需根据系统发行版选择安装命令……

    2025年9月30日
    1700
  • Linux如何动态加载驱动不编译内核?

    驱动模块基础内核模块(.ko文件)Linux驱动以.ko(Kernel Object)文件形式存在,存储在/lib/modules/$(uname -r)/kernel/目录下,查看已安装模块: ls /lib/modules/$(uname -r)/kernel/drivers模块依赖关系模块可能依赖其他模块……

    2025年7月5日
    4900
  • 如何查看Linux系统的IP地址具体方法及详细配置信息有哪些?

    在Linux系统中,查看IP地址是网络管理和故障排查的基础操作,无论是临时查看当前网络接口的IP配置,还是确认永久静态IP或动态IP(DHCP)的分配情况,Linux都提供了多种命令行和图形化工具,本文将详细介绍不同场景下查看IP地址的方法,并对比各工具的适用场景和输出特点,命令行工具查看IP地址命令行是Lin……

    2025年8月26日
    3200
  • Linux如何获取最高权限?

    在Linux系统中,最高权限通常指root权限(UID为0的超级用户权限),root用户拥有对系统的完全控制权,包括文件操作、进程管理、设备访问等核心功能,获取root权限是系统管理和高级操作的基础,但需注意权限滥用可能导致系统损坏或安全风险,以下从Linux权限体系、合法获取途径、安全风险及最佳实践等方面详细……

    2025年10月3日
    900
  • Telnet主要作用是什么?网络管理必知

    在Linux系统中,Telnet是一种历史悠久的网络协议工具,用于通过命令行远程连接其他主机或测试网络服务,注意:Telnet协议本身不加密数据传输,存在安全风险,仅建议用于本地测试或诊断,生产环境务必使用SSH等加密替代方案, 以下是详细操作指南:远程登录(已基本被SSH取代)网络服务诊断:测试端口连通性(如……

    2025年7月1日
    5400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信