跳转到内容

忘记管理员密码 ​

密码忘了不是世界末日,但处理得不好会让 NAS 停机很久。读完这一篇,你能分清 OMV 里有哪几种密码、各自怎么重置,在 root 密码也丢了的时候怎么用救援系统找回访问,并且知道怎么避免下一次。

开始之前 ​

  • 本文讲的是找回你自己的 NAS 的访问权限。这些办法都要求你能在本机控制台操作,或者已经有一个能登录的账户。
  • 先按下面的表判断你忘的是哪一个密码,不同的密码重置方式完全不同。

最后一种办法需要关机,并且要接触系统盘

影响范围:用救援系统重置 root 密码时,NAS 要停机,所有共享都会中断;你会用 U 盘启动另一个系统,并挂载 OMV 的系统盘。数据盘不需要也不应该碰。

前置条件:能在 NAS 本机接显示器和键盘;准备一个能启动的救援系统 U 盘;认清哪块是系统盘,核对容量、型号和序列号,不要选错成数据盘;数据已有独立备份。

怎么回退:这个办法只修改系统盘上 root 的密码,没有回退操作。出错时系统盘还在,重来一遍即可。

先分清是哪个密码 ​

密码用在哪里重置办法
Web 管理员 adminWeb 界面登录omv-firstaid,见下面「场景一」
其他 Web 管理员(openmediavault-admin 组的用户)Web 界面登录用 admin 登录,在 用户 → 用户(Users → Users)里编辑这个用户并设置新密码
root本机控制台、SSH另一个有 sudo 权限的账户,或救援系统,见「场景三」「场景四」
普通用户SMB 共享、SSH管理员在 用户 → 用户 里重新设置,SMB 密码会一起同步
两步验证的验证码Web 界面登录不是密码问题,见 两步验证:TOTP 与邮件验证码

admin 是一个真实存在的系统账户(登录 shell 是 nologin),Web 界面的管理员密码就是它的系统密码。

场景一:忘了 Web 密码,但 root 还能登录 ​

用 root 登录 NAS 的本机控制台,或者 SSH,运行:

sh
omv-firstaid

在菜单里选 Change Workbench administrator password,输入两遍新密码。然后用新密码登录 Web 界面。

如果菜单提示 Failed to connect to socket,说明 RPC 守护进程没有运行,先 systemctl restart openmediavault-engined,再重试。每个菜单项的作用见 omv-firstaid 救援工具。

场景二:密码是对的,但提示账户被锁 ​

OMV 的 Web 登录用 PAM 的 faillock 限制失败次数:5 分钟内连续输错 3 次,账户就被锁定。OMV 的 PAM 配置里写的是 unlock_time=0,意思是不会自动解锁,必须由管理员重置。这条规则配在 OMV 自己的两个 PAM 服务里,作用于 Web 界面的登录;SSH 和 SMB 用各自的 PAM 配置,按源码推断不受它影响。admin 自己被锁时,你无法在界面里解锁,只能用 root 在控制台处理。失败记录放在 /var/run/faillock/ 下,这个目录在开机时会被清空,所以重启 NAS 也能解锁,只是代价比下面的办法大。

邮件里写的是「3 分钟后自动解锁」

被锁时 OMV 发给 root 的告警邮件里写着「3 分钟后可以再次登录」,但 PAM 配置里是不自动解锁,两者不一致。以实际行为为准:被锁之后,用下面的办法重置。

用 root 运行 omv-firstaid,选 Reset failed login attempt counter,选中被锁的用户。也可以直接用命令:

sh
faillock                              # 列出所有用户的失败记录
faillock --user <用户名> --reset      # 重置某个用户

如果没有用户有失败记录,说明锁定不是原因,再检查密码是否输错、时间是否同步、浏览器有没有缓存了旧的登录状态。更多登录问题见 登录失败与账户被锁。

场景三:忘了 root 密码,但有别的能 sudo 的账户 ​

用那个账户 SSH 登录,设置 root 的新密码:

sh
sudo passwd root

按提示输入两遍新密码。能 sudo 的账户指属于 sudo 组的用户。OMV 默认没有这样的账户,所以这条路只在你事先建好了备用管理员的情况下才走得通,见 管理员账户与最小权限。

场景四:没有任何可以登录的账户 ​

这是最后的办法:用救援系统启动,挂载 OMV 的系统盘,在里面修改 root 的密码。它能做到,是因为你拥有机器的物理访问权,所以任何能碰到你 NAS 的人,也能用同样的办法。放在不受信任的环境里的 NAS,应该给系统盘加密,并给机柜上锁。

  1. 准备救援系统。 在另一台电脑上,把 SystemRescue 或 Debian Live 镜像写进 U 盘,写盘方法同 下载、校验并制作安装 U 盘。
  2. 用 U 盘启动 NAS,进入救援系统的命令行。
  3. 找到 OMV 的系统盘。 用型号、容量和文件系统判断,系统盘通常是最小的那块,并且上面有一个 Linux 根分区:
sh
lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,LABEL,MOUNTPOINTS
  1. 挂载系统盘的根分区并进入。 把 <根分区> 换成上一步确认的分区,例如 /dev/sda1:
sh
mkdir -p /mnt/omv
mount /dev/<根分区> /mnt/omv
mount --bind /dev /mnt/omv/dev
mount --bind /proc /mnt/omv/proc
mount --bind /sys /mnt/omv/sys
chroot /mnt/omv /bin/bash
  1. 在里面设置密码。 root 和 admin 都可以改:
sh
passwd root
passwd admin
exit
  1. 卸载并重启。 先 exit 退出 chroot,再逆序卸载,最后拔掉 U 盘重启:
sh
umount /mnt/omv/sys /mnt/omv/proc /mnt/omv/dev
umount /mnt/omv
reboot

如果系统盘用了 LVM 或者 LUKS 加密,要先激活卷组或者解锁,再挂载,需要你自己知道加密密码,这是加密有效的地方。

检查结果 ​

  • 用新的 root 密码在本机控制台登录成功。
  • 用新的 admin 密码登录 Web 界面成功。
  • 登录之后看一下最近的登录记录,确认没有你不认识的登录:
sh
last -n 20

常见问题 ​

omv-firstaid 改了密码,Web 界面仍然登录不了。 先确认你登录的用户名是 admin,而不是别的账户。再确认是不是启用了两步验证,验证码也要正确。

忘了 SMB 密码,在 shell 里 passwd 改了,SMB 还是不能登录。 在 shell 里用 passwd 只改 Linux 密码,SMB 密码要在 OMV 的 用户 → 用户 里设置。

救援系统里找不到系统盘。 先 lsblk 确认系统盘有没有被识别,没有的话检查线缆;系统盘是 RAID 或者 LVM 的,要先把它们激活。

担心这个办法被别人利用。 这正是物理安全的意义:给 BIOS 或 UEFI 设置密码、禁用 USB 启动,只能增加门槛,真正有效的是系统盘加密和放在上锁的地方。

预防 ​

  • 把 root 和 admin 的密码放进密码管理器,不要只靠记忆。
  • 建一个有 sudo 权限的备用管理员,用公钥登录,作为 root 密码丢失时的入口,并按 SSH 加固 控制好它。
  • 启用两步验证的时候,把备份码保存好。

参考资料 ​

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。