在Linux系统中,更改root密码是系统管理的基础操作,以下是详细方法,涵盖不同场景(已知当前密码/忘记密码),请根据实际情况选择,操作涉及系统核心权限,务必谨慎执行。
前提条件
- 权限要求:
- 方法1-2:需已知当前root密码或拥有
sudo
权限的用户。 - 方法3-4:需物理接触服务器或虚拟机控制台。
- 方法1-2:需已知当前root密码或拥有
- 风险提示:
- 误操作可能导致系统无法启动,操作前建议备份数据。
- 生产环境建议在维护窗口操作。
方法1:已登录root用户时(最简单)
输入当前root密码 # 2. 执行密码修改命令 passwd # 3. 按提示输入两次新密码 New password: Retype new password:
✅ 提示:
passwd
命令会强制要求密码复杂度(长度8+字符,含大小写/数字)。
方法2:通过sudo权限用户修改
适用于拥有sudo权限的普通用户(如Ubuntu初始用户):
# 1. 终端执行命令 sudo passwd root # 2. 先输入当前用户密码(验证sudo权限) [sudo] password for user: # 3. 再设置root新密码 New password for root: Retype new password:
方法3:单用户模式(忘记root密码)
适用场景:无法通过常规方式修改密码。
步骤:
- 重启系统,在GRUB菜单界面(启动时按
Shift
或Esc
键)选择内核行,按e
进入编辑模式。 - 修改启动参数:
- 找到
linux
或linux16
开头的行,将ro
改为rw init=/bin/bash
(或末尾添加single
)。 - 按
Ctrl+X
或F10
启动到单用户模式。
- 找到
- 挂载文件系统并改密:
mount -o remount,rw / # 重新挂载根目录为可写 passwd root # 输入新密码 touch /.autorelabel # SELinux系统需执行(如CentOS/RHEL) exec /sbin/init # 正常重启系统
方法4:Live CD/USB救援模式
适用场景:无法进入GRUB菜单或单用户模式失败。
步骤:
- 用Linux Live USB/CD启动系统,选择”Try without installing”。
- 挂载原系统根分区:
sudo -i # 获取临时root权限 fdisk -l # 查看原系统分区(如/dev/sda2) mount /dev/sda2 /mnt # 挂载根分区 mount --bind /dev /mnt/dev # 挂载设备文件 mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys
- 切换环境并改密:
chroot /mnt # 切换到原系统环境 passwd root # 修改密码 exit # 退出chroot reboot # 重启并移除Live介质
安全建议
- 密码强度:使用12位以上混合字符(字母+数字+符号),避免常见词汇。
- 定期更新:每3个月更换一次密码,使用
passwd -S root
检查密码状态。 - 限制root登录:
- 禁用SSH root登录:编辑
/etc/ssh/sshd_config
,设置PermitRootLogin no
。 - 通过普通用户+
sudo
管理,降低风险。
- 禁用SSH root登录:编辑
- 审计日志:通过
grep 'passwd' /var/log/auth.log
监控密码修改记录。
常见问题
-
Q:修改后提示“Authentication token manipulation error”
A:文件系统只读导致,执行mount -o remount,rw /
解除只读状态再操作。 -
Q:单用户模式要求输入root密码?
A:编辑GRUB时在内核参数末尾添加init=/bin/bash
绕过密码验证。 -
Q:云服务器无法物理操作怎么办?
A:阿里云/酷盾等提供VNC控制台,可通过方法3操作;或使用救援模式(类似方法4)。
引用说明参考Linux官方文档(kernel.org)、Ubuntu Manpage(manpages.ubuntu.com)及Red Hat Enterprise Linux系统管理指南,操作命令已在CentOS 7/8、Ubuntu 20.04/22.04验证通过。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8326.html