如何修改Linux服务器密码?详细操作步骤是怎样的?

修改Linux服务器密码是系统管理和安全维护的基础操作,根据登录方式(本地/远程)、用户权限(普通用户/root)以及是否忘记密码等不同场景,操作方法有所差异,以下是详细的操作步骤、注意事项及常见问题处理,帮助管理员安全高效地完成密码修改。

如何修改linux服务器密码

本地登录修改当前用户密码

当已通过控制台或本地终端登录Linux服务器时,修改当前用户的密码需使用passwd命令,操作流程如下:

  1. 执行passwd命令
    在终端输入passwd,按回车执行,如果是普通用户,系统会要求先输入当前密码进行验证;如果是root用户,可直接跳过验证。

    passwd
  2. 输入新密码
    根据提示输入两次新密码(第二次输入为确认,终端不会显示字符),密码需符合系统策略(如长度、字符类型),若不符合要求会提示重新输入。

  3. 确认修改成功
    密码修改成功后,终端会显示passwd: password updated successfully(密码更新成功),新密码立即生效,后续登录需使用新密码。

本地登录修改其他用户密码(需root权限)

若需修改其他用户的密码(如修改普通用户test的密码),必须使用root权限操作,步骤如下:

  1. 切换至root用户
    普通用户可通过su -命令切换至root(需输入root密码),或直接使用sudo passwd username(需配置sudo权限)。

    su -  # 输入root密码后切换
  2. 执行passwd命令指定用户
    使用passwd + 用户名修改目标用户密码,例如修改test用户:

    passwd test
  3. 输入并确认新密码
    根据提示输入两次新密码(无需输入目标用户旧密码),root用户可直接为其他用户设置任意符合策略的密码。

远程SSH登录修改密码

通过SSH远程连接服务器时,修改密码的操作与本地登录一致,但需确保SSH服务正常运行且网络连通。

如何修改linux服务器密码

  1. 建立SSH连接
    使用ssh命令连接服务器,例如以test用户远程登录168.1.100:

    ssh test@192.168.1.100
  2. 执行passwd命令
    登录成功后,与本地操作一致,输入passwd修改当前用户密码,或root用户通过passwd username修改其他用户密码。

  3. 测试新密码
    修改完成后,可退出当前会话(exit),重新使用SSH连接测试新密码是否生效。

忘记密码的应急处理

若忘记root密码或关键用户密码,需通过“单用户模式”或“恢复模式”绕过密码验证重置密码,具体操作因Linux发行版(如CentOS/RHEL、Ubuntu/Debian)而异。

(一)CentOS/RHEL系统(以CentOS 7为例)

  1. 重启服务器并进入GRUB菜单
    重启服务器时,长按Shift键(或根据BIOS/UEFI设置按Esc),进入GRUB引导菜单。

  2. 编辑内核启动参数
    选择默认内核版本,按e键进入编辑模式,找到以linux16或linuxefi开头的行,在行尾添加rd.break(临时中断启动进入initramfs环境)。

  3. 切换至系统根目录并修改密码

    • 按Ctrl+X启动系统,进入紧急模式后,执行以下命令挂载系统根目录:
      mount -o remount,rw /sysroot
    • 切换至系统根环境:
      chroot /sysroot
    • 使用passwd命令重置root密码(步骤同前),完成后输入exit退出chroot环境。
  4. 重启并验证
    执行reboot重启服务器,新密码生效,若系统启用了SELinux,建议首次重启后执行touch /.autorelabel(触发文件标签重标记),避免权限异常。

(二)Ubuntu/Debian系统

  1. 重启进入GRUB菜单
    重启时长按Shift键,进入GRUB引导界面。

    如何修改linux服务器密码

  2. 选择恢复模式
    选择Advanced options,进入当前内核的Recovery模式,再选择“root Drop to root shell prompt”(进入root终端)。

  3. 挂载根目录并修改密码

    • 挂载根目录为可读写模式:
      mount -o rw,remount /
    • 使用passwd命令重置root密码,完成后输入reboot重启。

密码策略与注意事项

为提升系统安全性,密码修改需遵循以下策略,可通过表格对比关键要求:

策略项 建议要求
密码长度 至少8位,推荐12位以上
字符复杂度 包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、特殊字符(如!@#$%^&*)
定期更换 建议每90天更换一次,避免长期使用相同密码
密码历史记录 通过/etc/login.defs配置PASS_MAX_DAYS(密码有效期)和PASS_MIN_DAYS(修改间隔)

额外注意事项:

  • 修改密码后,及时清理终端历史记录(history -c),避免密码泄露。
  • 若服务器使用密钥认证+密码双重验证,修改密码后需确保密钥认证仍有效。
  • 批量修改多台服务器密码时,建议使用Ansible、SaltStack等自动化工具,避免手动操作遗漏。

相关问答FAQs

Q1:修改密码后提示“Authentication token manipulation error”,如何解决?
A:该错误通常由磁盘空间不足、/etc/shadow文件权限异常或SELinux强制模式导致,可按以下步骤排查:

  1. 检查磁盘空间:df -h,若根目录()使用率超过90%,清理临时文件(如/tmp目录)。
  2. 修复/etc/shadow权限:chmod 600 /etc/shadow(确保仅root可读写)。
  3. 临时关闭SELinux(测试用):setenforce 0,若问题解决,则需检查SELinux策略或启用allowpassword布尔值(setsebool -P allowpasswordonkey on)。

Q2:如何通过脚本批量修改多台Linux服务器的密码?
A:可结合sshpass和expect工具实现非交互式批量修改,或使用Ansible Playbook(推荐),以下为Ansible示例:

  1. 安装Ansible:yum install ansible -y(CentOS)或apt install ansible -y(Ubuntu)。
  2. 创建主机清单文件hosts.ini,定义目标服务器:
    [servers]  
    server1 ansible_ssh_user=root ansible_ssh_host=192.168.1.101  
    server2 ansible_ssh_user=root ansible_ssh_host=192.168.1.102  
  3. 创建Playbookreset_password.yml:
    ---  
    - name: Batch reset password  
      hosts: servers  
      tasks:  
        - name: Update root password  
          user:  
            name: root  
            password: "{{ 'NewPass123!' | password_hash('sha512') }}"  # 替换为自定义密码  
            update_password: always  
  4. 执行Playbook:ansible-playbook -i hosts.ini reset_password.yml,输入SSH密码或配置SSH免密后即可批量修改。

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

赞 (0)
酷番叔酷番叔
上一篇 2025年10月1日 00:47
下一篇 2025年10月1日 01:04

相关推荐

  • 如何远程连接Linux电脑?详细步骤与方法指南

    远程连接Linux电脑是日常运维、开发和管理中的常见需求,主要通过SSH(安全外壳协议)实现命令行访问,或通过VNC(虚拟网络计算)实现图形界面远程操作,本文将详细介绍这两种主流方式的配置步骤、工具使用及安全注意事项,帮助用户高效、安全地远程管理Linux系统,通过SSH实现命令行远程连接SSH是Linux远程……

    2025年8月27日
    28400
  • 如何实时查看Nginx运行状态

    在Linux系统中,查看服务是否启动是运维和开发的常见需求,以下是几种专业、可靠且高效的命令行方法,适用于不同发行版(如Ubuntu、CentOS、Debian等),所有操作均需在终端中执行:使用 systemctl 命令(推荐,适用于Systemd系统)适用场景:主流现代Linux发行版(Ubuntu 16……

    2025年8月6日
    26500
  • 手机充电到100%真的伤电池吗

    在Linux系统中,hosts文件是一个用于本地域名解析的关键配置文件,它允许用户手动指定域名与IP地址的映射关系,绕过DNS服务器直接生效,以下是如何安全、高效配置hosts文件的完整指南:hosts文件的作用与重要性核心功能:当访问域名(如www.example.com)时,系统首先查询hosts文件,若存……

    2025年6月20日
    24900
  • Linux系统修改hosts文件配置后如何使其立即生效?

    在Linux系统中,hosts文件是一个本地域名解析映射表,用于将域名直接关联到IP地址,其优先级高于DNS服务器,常用于测试环境配置、屏蔽特定网站或加速本地域名访问,修改hosts文件后,系统并不会立即生效,需要通过特定操作触发重新加载配置,本文将详细说明Linux修改hosts文件后的生效原理、具体操作步骤……

    2025年8月24日
    32800
  • Linux如何对比两个文件夹的文件、内容及权限差异?

    在Linux系统中,对比两个文件夹的差异是日常运维、代码管理或数据校验中的常见需求,例如同步备份文件、查找重复内容或验证目录一致性,Linux提供了多种命令行和图形化工具来实现文件夹对比,可根据需求选择合适的方法,命令行工具对比文件夹命令行工具适合脚本自动化或远程服务器操作,以下是常用工具的用法及特点:diff……

    2025年9月23日
    30100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信