在提取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
这里有什么问题?
tarball 包含一个
scalapack-2.0.2
由用户 id 502 拥有的目录和任何组 id 对应于游戏组(或者,也许是游戏组的名称)。您可以通过运行看到这一点除了文件内容之外,Tar 存档还存储所有权和权限;由于您是以 root 身份提取的,因此该元数据将应用于提取的文件。tarball 本身的所有权对提取数据的所有权没有影响。
由于您正在运行 CentOS,因此您可能正在运行 GNU
tar
,并且您可以使用--no-same-owner
和--no-same-permissions
选项来提取 tarball,而无需应用存储的所有权和权限。其他tar
实现可能有类似的选项(例如-o
在FreeBSDtar
上)。