外观
忘记管理员密码
密码忘了不是世界末日,但处理得不好会让 NAS 停机很久。读完这一篇,你能分清 OMV 里有哪几种密码、各自怎么重置,在 root 密码也丢了的时候怎么用救援系统找回访问,并且知道怎么避免下一次。
开始之前
- 本文讲的是找回你自己的 NAS 的访问权限。这些办法都要求你能在本机控制台操作,或者已经有一个能登录的账户。
- 先按下面的表判断你忘的是哪一个密码,不同的密码重置方式完全不同。
最后一种办法需要关机,并且要接触系统盘
影响范围:用救援系统重置 root 密码时,NAS 要停机,所有共享都会中断;你会用 U 盘启动另一个系统,并挂载 OMV 的系统盘。数据盘不需要也不应该碰。
前置条件:能在 NAS 本机接显示器和键盘;准备一个能启动的救援系统 U 盘;认清哪块是系统盘,核对容量、型号和序列号,不要选错成数据盘;数据已有独立备份。
怎么回退:这个办法只修改系统盘上 root 的密码,没有回退操作。出错时系统盘还在,重来一遍即可。
先分清是哪个密码
| 密码 | 用在哪里 | 重置办法 |
|---|---|---|
Web 管理员 admin | Web 界面登录 | 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,应该给系统盘加密,并给机柜上锁。
- 准备救援系统。 在另一台电脑上,把 SystemRescue 或 Debian Live 镜像写进 U 盘,写盘方法同 下载、校验并制作安装 U 盘。
- 用 U 盘启动 NAS,进入救援系统的命令行。
- 找到 OMV 的系统盘。 用型号、容量和文件系统判断,系统盘通常是最小的那块,并且上面有一个 Linux 根分区:
sh
lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,LABEL,MOUNTPOINTS- 挂载系统盘的根分区并进入。 把
<根分区>换成上一步确认的分区,例如/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- 在里面设置密码。 root 和
admin都可以改:
sh
passwd root
passwd admin
exit- 卸载并重启。 先
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 加固 控制好它。
- 启用两步验证的时候,把备份码保存好。