sudo tar将提取的文件所有权更改为未知用户


10

我正在运行以下命令:

$ sudo tar xvzf nexus-latest-bundle.tar.gz

提取的文件属于未知(1001)用户:

drwxr-xr-x 8     1001     1001      4096 Dec 16 18:37 nexus-2.12.0-01
drwxr-xr-x 3     1001     1001      4096 Dec 16 18:47 sonatype-work

在正常配置下,它不是root用户吗?

我正在研究从AWS AMI复制的Linux安装。

Answers:


15

当以root用户身份提取文件时,tar将使用原始所有权。您可以使用--no-same-owner选项(或-o)覆盖该选项。

您的tar文件所引用的用户/组在您提取该文件的系统上不存在。

如果您以自己(非特权用户)的身份提取文件,则只能创建自己拥有的文件。

GNU tar手册说:

--same-owner
提取档案时,tar会尝试保留tar档案中指定的所有者(存在此选项)。这是超级用户的默认行为。此选项仅对普通用户有效。请参阅处理文件属性部分。


1
好的,所以只有在成为r​​oot用户时才会发生这种情况,因为如果我不使用sudo运行命令:“ tar xzvf nexus-latest-bundle.tar.gz”,那么所有权设置为我的当前用户,这是预期的行为吗?
raspacorp

2
@raspacorp:作为非root用户,您无权创建拥有所有权以外的任何文件。因此,根据需要,文件是由您作为所有者创建的。
Nate Eldredge

1

创建tar文件的人的有效用户ID和组ID(UID:GID)为1001:1001。由于tar默认情况下会保留所有权和权限,因此在展开时会继承这些值。如果您的系统上有一个UID:GID 1001:1001的用户,则这些文件将归该用户所有。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.