进一步阅读

进一步阅读

我这里有一个 POSIX tar archive call Debian9.ova

有趣的是,在 MacOS High Sierra 中将其列出tar,显示:

$ tar -tvf Debian9.ova 
-rw-r--r--  0 someone someone  5344 26 Feb 13:57 Debian9.ovf
-rw-r--r--  0 someone someone   179 26 Feb 13:57 Debian9.mf
-rw-r--r--  0 someone someone 2113245184 26 Feb 13:59 Debian9-disk1.vmdk

现在有趣的一点是,我没有someone用户和组。

$ id someone
id: someone: no such user

用 列出它--numeric-owner,它显示为uid64,并且gid64 显然不存在于我的系统中。

$ tar -tvf Debian9.ova --numeric-owner
-rw-r--r--  0 64     64       5344 26 Feb 13:57 Debian9.ovf
-rw-r--r--  0 64     64        179 26 Feb 13:57 Debian9.mf
-rw-r--r--  0 64     64 2113245184 26 Feb 13:59 Debian9-disk1.vmdk

列出系统中的用户没有找到somebody用户:

dscl . list  /Users | grep someone

那么从哪里来呢someonetar当它发现未知的uid和时,它是一个“特征”吗gid

附言。在 Debian 中仅供比较:

$ tar -tvf a.tar
-rw-r--r-- 64/64          3212 2018-02-27 02:01 dead.letter
$ bsdtar -tvf a.tar
-rw-r--r--  0 64     64       3212 Feb 27 02:01 dead.letter

答案1

我这里有一个 POSIXtar存档 [...]

在标准格式tar存档中,每个文件的标头信息包含以下字段:两个都符号用户和组名数字用户和组 ID。

正如您所看到的,tar可以列出一组字段或另一组字段。

使用一致的pax实用程序,人们应该能够完全列出这些字段:

$ pax -o listopt="%(uid)s %(gid)s %(uname)s %(gname)s %L\n" < Debian9.ova

然而,我认为pax目前不存在符合标准的实用程序。

进一步阅读

  • ustar头块pax.. 单一 Unix 规范。 IEEE 1003.1-2008:2016。
  • 蒂姆·金茨勒 (2016-12-27)。 tar。 § 5. FreeBSD 文件格式手册

相关内容