不小心运行了“rm -rf /home”

不小心运行了“rm -rf /home”

请注意,我不小心运行的命令是递归删除根主目录,而不是用户目录。也不是我没有 sudo 也没有 root 权限。

这不是通常意义上的数据恢复问题。由于某种原因,根目录的大多数子目录/home似乎都完好无损。特别是我的用户主目录/home/user仍然存在,并且具有大多数/(全部?)其子目录。.ssh在那里,有一个名为其中code包含我所有工作文件的目录似乎已经幸存下来。然而我的.bashrc文件不见了。

rm -rf /home

我的第一个问题是为什么这些目录没有屈服于该命令?

写这篇文章的主要目的是了解我所了解的内容做过删除并让我的安装再次正常运行。

在 ubuntu 上,l=ls别名不再可用,所以我想我删除了一些包含这些的文件。

某些程序也丢失了。

制表符补全也不起作用。我有什么想法可以拿回来吗?

答案1

好吧,你真的不应该同时问几个问题。我会回答为什么你的/home/user目录没有被删除。

您需要了解类 UNIX 系统上的文件权限。它们由3个三元组组成:rwxrwxrwx,第一个三元组是所有者的许可,第二个三元组是所有者组的许可,最后一个三元组是其他所有人(其他人)的许可。

进入/home/并执行ls -la,您应该看到类似以下内容:

drwxr-xr-x  6 root root  4096 Feb 15  2022 .
drwxr-xr-x 19 root root  4096 Jan 19 20:56 ..
drwxr-xr-x 88 user user  4096 Feb  1 21:22 user

让我们把它拆开。该.目录就是我们所在的目录 ( /home/),您可以注意到它由用户root和组拥有root。这不是您的用户,您可以通过运行su或“成为”该用户sudo,但是当您通常执行任何尝试更改该目录的命令时,您将成为“其他”,这是第三个三元组。其他人拥有 权限r-x,这意味着您可以读取该目录的内容(列出文件和子目录)并执行它(更改为该目录并在该目录为当前目录的情况下运行命令)。

当您删除文件或子目录时,您实际上并没有更改该文件,而是更改了该文件所在的目录。在某些系统上,如果您尝试删除您没有写所有权的文件,但您有在文件所在的目录上写入,您将收到警告,但从技术上讲,您可以这样做。

让我们考虑一下:

/         root  root drwxr-xr-x
/test/    user  user drwxrwxr--
/test/t   root  root -rwx------
/tst      user  user -rw-rw-rw-

如果不成为超级用户 (root),您将无法读取或写入该文件/test/t,但是,您将能够删除该文件,因为您具有 的写入权限/test/

但文件/tst却相反。您可以毫无问题地写入文件、读取其内容、截断文件等...但您将无法重命名或删除该文件,因为这需要/.

现在,让我们回到你的/home/,记住你没有对其/home自身的写权限,你可以做任何事情之内 /home/user/,但您无法删除它。因此,其中的所有文件都被删除,但目录本身仍然存在。

答案2

  • 比做更好rm -rf /
  • 我要说的话来自杀死-9总是以以下身份登录的人这就是为什么你没有删除 home 下的所有内容,因为你是以你的身份登录的,而不是以你的身份登录的。
    • 你没有明确地说你是以root身份登录的,所以我假设你是以你的身份登录的,所以下面的其他一切都/home应该没问题,只有你有写权限的内容(即你的家庭帐户)才会开始实际删除......直到你control-C想打断它。
  • 需要采取什么步骤才能让我的安装再次正常运行

    • 重新创建您的用户帐户...
      • adduser serguio --uid # --gid 100 --no-user-group --create-home --comment Sergio\ Gliesh
      • 调整参数以adduser满足您的需要,这只是一个示例。
      • 您需要使用与以前不同的帐户名,然后您可以将数据文件和文件夹复制到 ,/home/oldaccount/home/newaccount不要复制任何隐藏的点文件,这样才能正常工作。之后,然后浏览点文件,就像.bashrc您有特定的内容一样,并将该内容干净地编辑到新的文件中/home/<newaccount>/.bashrc

相关内容