如何在加密的fs上重设密码?


8

自去年暑假以来,我有一台没有用过的笔记本电脑:我确实在上面放了Debian 7,并使用了Debian的功能对磁盘进行了完全加密,除了一个很小的引导加载程序(或一个很小的分区),我猜(不是)确定这是哪种加密方法,也不知道如何找出)。

确实知道加密文件系统的密码,因此系统可以启动,但是我被卡住了登录提示:我确实忘记了密码。

看来我知道加密文件系统的密码,我认为它可以从Live CD(甚至可以从Debian安装CD?)启动,并以某种方式“挂载”加密分区。

如果是这样,有人可以向我解释该如何做吗?(知道我从来没有手动安装过加密分区/文件系统)


1
重新安装整个Debian系统对我来说不是什么大事(没有任何价值,我可以安装Debian),但似乎有点过头了,而且,我可能会在此过程中通过安装加密的文件系统和更改密码...
Cedric Martin

Answers:


15

全盘加密通常是使用dm-cryptDevice Mapper目标和内部嵌套的LVM(逻辑卷管理器)完成的。因此,要重置密码,您必须

  1. 解锁/打开加密容器;这是使用完成的cryptsetup
  2. 激活逻辑卷;vgchange用于此。

通常,您不需要关心这一点。只需让initrd您的发行版提供的功能即可完成工作,但告诉它不要开始,/sbin/init而是告诉其他人-一个外壳会很好。只需init=/bin/sh在引导加载程序中添加到内核​​的命令行即可(使用GRUB时,您可以按下E并选择适当的引导条目进行编辑)。

然后,您的内核应正常启动,引导至,initrd该内核将要求您输入密码并设置文件系统,但与其将系统启动,不如将其放入外壳中。在那里你必须

  1. 重新安装/读写:mount -o rw,remount /
  2. 使用重置密码passwd <user>(因为您root将不会被提示输入旧密码)
  3. 重新挂载为/只读:(mount -o ro,remount /跳过此操作可能会使您的初始化脚本感到困惑)
  4. 使用exec /sbin/init(或简单地reboot -f)启动常规init 。

如果这不起作用,则您将需要更加努力地采取这种方法,并从“外部”进行操作,也就是引导Live CD。通常,这应该可以通过使用Debian安装CD来实现-应该安装工具,因为安装程序必须以某种方式设置使用相同模式的加密:

  1. 引导Live CD

  2. 通过发出打开加密的分区

    # cryptsetup luksOpen /dev/<partition> some_name
    

    <partition>您的加密分区名称应该在哪里(sda2,可能是)。 some_name只是……一些名字。这将提示您输入磁盘的加密密码,并创建一个名为的块设备/dev/mapper/some_name

  3. 激活逻辑卷。通常应该通过发出

    # vgscan
    # vgchange -ay
    

    这将为LVM中的每个逻辑卷创建块设备文件/dev/mapper/

  4. 挂载包含/文件系统的卷:

    # mount /dev/mapper/<vgname>-<lvname> /mnt
    

    其中<vgname><lvname>是卷组和逻辑卷的名称。这取决于发行版的设置方式,但是只要看一看/dev/mapper/,通常名称是不言而喻的。

  5. 相应地更改密码passwd <user>


这说明了如何更改文件系统的密码。如果您仔细阅读问题,他会知道该密码。他忘记了他的用户(登录)密码。
cjm 2014年

哦,对不起,我错过了-太迟了。;)更正。
Andreas Wiese 2014年

@AndreasWiese:+1,谢谢...确实,这是我需要更改的用户密码!我将尽快尝试您的建议:我非常喜欢没有现场CD的方法。
Cedric Martin

@AndreasWiese:做得很好。起初,我不太确定应该在Grub的哪一行添加“ init = / bin / sh”,但是一切进展顺利。我只是为root用户逐个字符地复制了另一个系统中/ etc / passwd /的条目(这有点痛苦)。一切再次变得顺利。再次感谢。
Cedric Martin

咩,它只是来到我的脑海里,一旦你重新安装/R / W,你可以简单地做passwd root,因为root没有得到要求他/她的旧密码。抱歉
Andreas Wiese 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.