1. 引言
在 Linux 和 macOS 上,重置本地账户密码通常比 Windows 更简单。然而,这种方法仅适用于:
本地账户(不适用于 Kerberos 认证等网络登录)。未加密的文件系统(如果磁盘加密,如 LUKS 或 FileVault 开启,则无法直接重置密码)。
本文将分别介绍如何在 Linux 和 macOS 上重置本地账户密码,并探讨可能遇到的问题及解决方案。
2. Linux 本地密码重置
在 Linux 系统中,账户密码存储在 文件中,只有 root 用户可以修改。因此,重置密码的核心思路是:
/etc/shadow
使用 Linux Live 系统启动计算机。挂载原系统的根文件系统。使用 切换到原系统环境,然后执行
chroot 命令修改密码。
passwd
2.1 进入 Linux Live 系统
首先,使用 Kali Linux 或 Ubuntu Live CD 启动计算机。确保你拥有 root 权限,否则无法修改密码。
2.2 挂载 Linux 根目录
查找 Linux 系统所在的分区
lsblk
或使用 命令:
parted
parted -l
挂载根分区
假设 Linux 根目录位于 ,则执行:
/dev/sda2
mkdir /mnt/linux
mount /dev/sda2 /mnt/linux
2.3 使用
chroot 修改密码
chroot
进入原系统环境
chroot /mnt/linux
修改 root 密码
passwd
输入新密码并确认:
Changing password for user root.
New password: ********
Retype new password: ********
退出 并重启
chroot
exit
reboot
2.4 SELinux 相关问题
如果使用的是 Red Hat、CentOS 或 Fedora,默认启用了 SELinux。在 环境下修改密码后,SELinux 可能会检测到文件系统的变更,并在下次启动时自动修复安全上下文:
chroot
系统可能会自动重启一次,此为正常现象。修复完成后,即可使用新密码登录。
3. macOS 本地密码重置
macOS 账户密码存储在本地 Keychain 中,重置密码的方法因设备型号和 macOS 版本而有所不同。
3.1 使用 macOS 恢复模式(推荐方法)
3.1.1 进入恢复模式
Intel 设备:重启时按住 ,进入 macOS 恢复模式。Apple Silicon(M1/M2)设备:按住 电源键 直到出现启动菜单,选择 “Options” 进入恢复模式。
Cmd + R
3.1.2 使用
resetpassword 工具
resetpassword
在恢复模式中,打开 终端( →
Utilities)。输入以下命令:
Terminal
resetpassword
选择要重置密码的账户:
如果账户绑定了 Apple ID:
需要输入 Apple ID 密码,并进行 双重认证(验证码会发送到其他 Apple 设备)。设备必须连接 互联网,否则无法继续。
如果账户未绑定 Apple ID:
直接输入新密码即可。但在某些 macOS 版本中,可能会遇到 “Reset Password Failed” 错误,导致密码无法修改。
3.2 通过单用户模式绕过密码
如果 无法使用,可以尝试 单用户模式(仅适用于 Intel 设备)。
resetpassword
3.2.1 进入单用户模式
重启 Mac,按住 进入 单用户模式(黑屏白字界面)。挂载根文件系统
Cmd + S
mount -uw /
删除 文件
.AppleSetupDone
rm /var/db/.AppleSetupDone
shutdown -h now
这会让 macOS 误以为是首次启动,从而触发初始设置向导。
3.2.2 创建新管理员账户
重新启动后,macOS 会进入首次启动界面。创建一个新的管理员账户(不要使用已有的用户名)。进入 macOS 系统后,打开 “系统设置” → “用户与组”。使用新管理员账户修改原账户密码。
4. macOS 固件密码(Firmware Password)
如果 Mac 设备启用了固件密码(Firmware Password),则无法使用恢复模式或单用户模式进行密码重置。
4.1 什么是固件密码?
固件密码 类似于 BIOS/UEFI 密码,用于防止未经授权的启动操作。启用固件密码后,无法从外部设备启动,也无法进入恢复模式()或选择启动磁盘(
Cmd + R 键)。
Option
4.2 如何判断设备是否启用了固件密码?
尝试进入恢复模式()。如果出现 锁屏界面 并要求输入密码,则表示固件密码已启用。
Cmd + R
4.3 如何移除固件密码?
需要原始密码才能禁用固件密码。如果忘记密码,唯一的解决方案是联系 Apple 官方支持,并提供购买凭证进行解锁。
5. 结论
5.1 Linux 密码重置总结
通过 Linux Live 系统 挂载原系统分区,并使用 进入环境修改密码。SELinux 可能会导致系统重启一次,但不会影响密码修改。
chroot
5.2 macOS 密码重置总结
推荐使用 macOS 恢复模式 运行 修改密码。如果
resetpassword 失败,可尝试 单用户模式 删除
resetpassword 文件,并创建新管理员账户。固件密码 可能会阻止密码重置,需联系 Apple 官方解锁。
.AppleSetupDone
5.3 物理安全的重要性
无论是 Linux 还是 macOS,本地账户密码都可以在物理访问的情况下被轻松重置。因此,建议采取以下安全措施:
启用全盘加密:
Linux:使用 LUKS 加密 分区。macOS:启用 FileVault 保护磁盘数据。
/
设置固件密码(macOS)或 BIOS/UEFI 密码(Linux),防止未经授权的启动。使用强密码 并定期更改,避免账户被暴力破解。
