我发现了一个错误,我向其报告此错误的开发人员希望我将包含错误的虚拟机发送给他们。他们希望我将密码和当前状态的虚拟机(快照)发送给他们。我不想将我当前拥有的虚拟机密码告诉他们,而是要将虚拟机的密码更改为其他密码,并且我不想让他们知道我的旧密码。
因此,如果我更改 sudo 密码并向他们提供机器的快照,并访问机器和新密码,他们有什么办法可以确定旧密码吗?该机器安装了 Ubuntu GNOME 15.10 和 GNOME 3.18 64 位。
我基本上只是想知道它是否仍然存储在某个地方或某物上,以及是否只需使用我不介意泄露的密码进行全新安装就会更安全,或者一旦更改密码,旧密码是否无法恢复,因此我是否只需向他们发送带有新密码的快照即可。
答案1
不,密码只存储在/etc/shadow
,即使在那里,它也存储咸味哈希。这意味着,即使他们有原始密码哈希,也很难从中获取实际密码。你必须暴力破解,如果可能的话,也需要长的时间和资源远远超过任何人愿意花费的去获取某个随机熊猫的密码。
无论如何,当您更改密码时,输入的内容/etc/shadow
都会改变,并且不会留下任何原始密码的痕迹。
你或许应该检查一下你的 shell 的历史记录,确保你从未在那里以纯文本形式输入过密码:
history | grep yourPassword
为了安心,您还可以对虚拟驱动器上的所有文件进行完整搜索:
find / -type f -exec grep -l "yourPassword" {} +
注意命令前面的空格。这样命令就不会被添加到历史记录中。
答案2
您最好创建一个新的 VM,重现错误,然后将新副本发送给开发人员,而您发送的内容对您来说毫无价值。如果您考虑所有可能保存随机文本字符串的地方(shell 历史记录、auth.log、压缩日志等),您仍然会怀疑您是否考虑过所有这些,或者是否进行了足够彻底的检查。
例如:在需要用户名时输入密码,该密码将保存在 /var/log/auth.log 中,旧的 auth.log 已压缩。其他登录名(如 ssh)怎么样?确信您了解所有操作系统位置?现在考虑 VM 程序可能正在执行哪种类型的日志记录。从新的、已知的干净 VM 开始并复制错误要少得多。此外,开发人员会喜欢显示错误的已知状态(全新安装)。