解压 tgz 文件后权限发生变化

解压 tgz 文件后权限发生变化

在提取tgz文件时,我注意到权限发生了奇怪的变化! tgz 文件属于 root:root,但是该文件夹属于 502:games

[root@rocks7 common]# ls -l
-rw-r--r-- 1 root root 4779534 May  2  2012 scalapack-2.0.2.tgz
[root@rocks7 common]# tar xf scalapack-2.0.2.tgz
[root@rocks7 common]# 
[root@rocks7 common]# ls -l
total 98576
drwxr-xr-x 10  502 games     4096 May  2  2012 scalapack-2.0.2
-rw-r--r--  1 root root   4779534 May  2  2012 scalapack-2.0.2.tgz

这里有什么问题呢?

答案1

tarball 包含scalapack-2.0.2用户 id 502 拥有的目录以及与游戏组(或者可能是游戏组名称)对应的任何组 id。你可以通过运行看到这一点

tar tvf scalapack-2.0.2.tgz

Tar 档案除了文件内容之外还存储所有权和权限;由于您以 root 身份提取,因此该元数据将应用于提取的文件。 tarball 本身的所有权对提取的数据的所有权没有影响。

由于您运行的是 CentOS,因此您可能正在运行 GNU tar,并且您可以使用--no-same-owner--no-same-permissions选项来提取 tarball,而无需应用存储的所有权和权限。其他tar实现可能有类似的选项(例如 -o自由BSDtar)。

相关内容