我们的首席技术员(不专业地)离开了我们的项目,我们无法联系到他,但作为一名半技术项目经理,我可以访问 Joyent 上的服务器。我们的新开发人员需要查看我们正在运行的实例以完成项目。
是否可以检索根密码?
如果我创建新的私人 ssh 密钥,我们是否能够访问服务器?
最糟糕的情况是,如果我无法通过 ssh 访问,我该如何备份数据?
尝试清理这个烂摊子,尽快将正确的凭证交给专业人士。任何帮助都将不胜感激。谢谢。
答案1
你能ssh
进入服务器吗?你能sudo
进入 root 用户吗?你能通过什么运行sudo
?
sudo /bin/bash
例如,如果您可以运行 ,然后使用rsync
进行复制,那么备份数据将变得非常简单。更好的方法是使用dump
或进行文件系统转储zfs send
。您可以使用 进行块级备份dd
。
如果您可以物理访问服务器,无论是通过 Joyent 进入恢复模式,还是能够启动安装媒体,那么您可以编辑 /etc/shadow 文件。如果可能的话,这是迄今为止最简单的操作。编辑 /etc/shadow 后,将您认识的用户的加密字符串复制到 root 用户加密字符串上。例如:
根:$6$YPBAiH9m$Kf9euZx0JLKo6M51SIk1lQ1tjUajETECta/eB8dLTWEfPF1NncM7ebQrnPu7ExwqnZ130VcWyvRI21d8GlmyY/:16392:0:99999:7::: ed:$6$zg0pHyXY$y6EriYDZCh4zrz1kztlxG2Fpf.8pmh9ON0fkoaSlW2jBJXfizrlBwGV4CFntwWsE55FKvuNlCS5UCpC1f2sio1:16392:0:99999:7:::
所以,我知道 ed 的密码,我只需要让 root 的密码看起来相同:
根:$6$zg0pHyXY$y6EriYDZCh4zrz1kztlxG2Fpf.8pmh9ON0fkoaSlW2jBJXfizrlBwGV4CFntwWsE55FKvuNlCS5UCpC1f2sio1:16392:0:99999:7::: ed:$6$zg0pHyXY$y6EriYDZCh4zrz1kztlxG2Fpf.8pmh9ON0fkoaSlW2jBJXfizrlBwGV4CFntwWsE55FKvuNlCS5UCpC1f2sio1:16392:0:99999:7:::
瞧,实际上,这是您可以做的最简单的事情,因为您将把 root 密码设置为与您知道其密码的用户密码相同。