为什么用户可以对属于root的644文件进行gunzip文件属于用户

一个属于root的tar.gz文件可以被用户打包,因为它可以被群组和公众读取。 但是,在压缩后,tar文件的所有者是用户,而不是root。 这是程序gunzip的function吗? 还是有另一种机制?

在大多数现代操作系统上,包括Linux,都没有删除文件的操作。 有一个操作是从一个目录中删除一个文件(称为“unlink”),但这是对目录的操作,而不是文件。 因此,如果您可以修改目录,则可以从中删除文件或添加文件(新文件或可以访问的现有文件)。

文件系统不再使用时,文件系统会自动删除文件。 一个文件甚至可以被添加到多个目录中,在这种情况下,它不能被删除,直到从所有这些目录中删除并且不再被任何进程使用。

大卫的优秀答案,但这里是我的5美分:

要解压文件,您需要以下权限:

  • 能够读取input文件。
  • 能够创build输出文件。
  • 可选地,您可能需要chown输出文件

由于您是普通用户,因此无法将文件chown到root。 由于这个原因解压缩的文件是由您的用户拥有。