为什么用户可以枪压缩属于 root 的 644 文件,而枪压缩的文件属于用户

为什么用户可以枪压缩属于 root 的 644 文件,而枪压缩的文件属于用户

属于 root 的 tar.gz 文件可以由用户进行压缩,因为它可以被组和公众读取。然而,gunzip 后,tar 文件所有者是用户,而不是 root 了。这是gunzip程序的一个功能吗?或者还有其他机制吗?

答案1

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

当文件不再使用时,文件系统会自动删除该文件。单个文件甚至可以添加到多个目录中,在这种情况下,只有从所有此类目录中删除该文件并且不再被任何进程使用时,才能将其删除。

答案2

大卫的回答非常好,但我的 5 美分是:

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

  • 能够读取输入文件。
  • 能够创建输出文件。
  • 或者,您可能想要chown输出文件

由于您是普通用户,因此您无法chown向 root 归档。因此,解压缩的文件归您的用户所有。

相关内容