属于 root 的 tar.gz 文件可以由用户进行压缩,因为它可以被组和公众读取。然而,gunzip 后,tar 文件所有者是用户,而不是 root 了。这是gunzip程序的一个功能吗?或者还有其他机制吗?
答案1
在大多数现代操作系统(包括 Linux)上,没有删除文件的操作。有一个从目录中删除文件的操作(称为“取消链接”),但这是对目录的操作,而不是对文件的操作。因此,如果您可以修改目录,则可以从中删除文件或向其中添加文件(新文件或您可以访问的现有文件)。
当文件不再使用时,文件系统会自动删除该文件。单个文件甚至可以添加到多个目录中,在这种情况下,只有从所有此类目录中删除该文件并且不再被任何进程使用时,才能将其删除。
答案2
大卫的回答非常好,但我的 5 美分是:
要解压缩文件,您需要以下权限:
- 能够读取输入文件。
- 能够创建输出文件。
- 或者,您可能想要
chown
输出文件
由于您是普通用户,因此您无法chown
向 root 归档。因此,解压缩的文件归您的用户所有。