如何在 SmartOS 中重置丢失的 root 密码

如何在 SmartOS 中重置丢失的 root 密码

我正在使用joyent_20130405T010449Z可启动 USB 运行 SmartOS 版本。长话短说,root 密码已经丢失多年了。

我尝试使用“root”作为密码,但失败了。我尝试不使用密码,但失败了。我尝试使用 USB 上的 platform/root.password 中的密码,但仍然失败。密码是其他的,我猜不出来。

noimport=true通过从 grub 菜单中选择“Live (noinstall)”选项(使用内核选项)并输入“root”作为密码来登录。然后我可以通过运行成功生成新的密码哈希/usr/lib/cryptpass newpassword,但之后就不清楚该怎么做了。

我尝试按照说明进行操作位于此处,但它们似乎并不适用于我:

当我启动“Live(noinstall)”时,没有/usbkey挂载点,并且编辑/etc/shadow没有持久效果(当我重新启动时它会重置)。

boot/grub/menu.lst我尝试编辑USB 驱动器上的条目,覆盖root_shadow=[hash]内核选项的输出/usr/lib/cryptpass newpassword,但重新启动并尝试使用“newpassword”登录仍然失败。

作为最后的手段,我可​​以考虑通过更换新版本的新 USB 密钥来“重新安装” SmartOS。如果我这样做,我的 ZFS 池和虚拟机会发生什么?

答案1

此处的说明是正确的,但在无导入模式下启动的情况下,它们是不完整的。usbkey是“区域”zpool 中的文件系统,在无导入模式下启动时,必须在重置密码之前将其挂载。要在无导入模式下挂载:

确认“区域”zpool存在:

$ zpool import
  pool: zones
    id: ##########
 state: ONLINE
 - snip -

导入:

$ zpool import zones

确认 Zones/usbkey 文件系统存在,并且是“遗留”挂载点(意味着它是用mount而不是挂载的zfs mount):

$ zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT
- snip -
zones/usbkey                 ###      -   ####  legacy
- snip -

安装它:

$ mkdir /usbkey
$ mount -F zfs zones/usbkey /usbkey

然后按照密码重置说明

$ umount /etc/shadow
$ cp /usbkey/shadow /etc/shadow
$ passwd root
$ cp /etc/shadow /usbkey/shadow

就这样,当您正常重启时,密码更改将会保留。

相关内容